使用gidplus進行文字繪製時,大家經常需要把多行文字繪製在乙個矩形框中,通常採用的繪製介面是drawtext和drawtextex。這個兩個函式確實可以實現矩形框中的多行繪製,但是,它們都沒有辦法在一次繪製中定製文字行距。
為了實現文字多行繪製的同時,可以定製行距,可以採用drawtextex方法一行行的繪製文字,然後,調整行距。其中,drawtextparams結構中的uilengthdrawn屬性代表在一次繪製中,繪製了多少個字元,然後,我們就可以移動一行,繪製其餘的字元,相對於gettextextent,非常方便了。
**如下:
void drawmultiline(cdc *pdc, const cstring &cstext, crect rctext, int ilinespace)
int ilaststartpos = 0;
int itextlen = static_cast(cstext.getlength());
int ilinecount = rctext.height() / ilinespace;
crect rcsubtext(rctext);
// 繪製每一行文字
for (int iindexline = 1; iindexline <= ilinecount; ++iindexline)
rcsubtext.top = rctext.top + ilinespace*(iindexline-1);
rcsubtext.bottom = rcsubtext.top + ilinespace;
cstring cssubtext = cstext.mid(ilaststartpos);
if (iindexline != ilinecount)
// 使用drawparams獲取一行繪製的字元數
drawtextparams drawparams;
zeromemory(&drawparams, sizeof(drawtextparams));
drawparams.cbsize = sizeof(drawtextparams);
pdc->drawtextex(cssubtext.getbuffer(), static_cast(cssubtext.getlength()), rcsubtext,
dt_left | dt_editcontrol | dt_wordbreak | dt_externalleading | dt_noprefix, &drawparams);
cssubtext.releasebuffer();
if (drawparams.uilengthdrawn > 0)
if (iindexline == 1)
}else
}}
使用pygame繪製文字
一 使用文字需要匯入乙個方法 freetype 具體方法 pygame.freetype.font c windows fonts 方正粗黑宋簡體.ttf 24 前者表示字型型別,後者表示字型大小 字型型別在電腦的c盤windows fonts檔案下 import pygame,sys import...
使用python graphviz繪製神經網路結構
graphviz中結點的位置是自動生成的,新增邊會影響節點的位置。如果要固定節點位置,在新增邊時需要設定constraint false def link edges d,starts,ends for i idx,i in enumerate starts for j idx,j in enume...
使用matlab繪製春聯
受到了 天元浪子 老師的啟發 寫了乙個類似的繪製春聯的程式 已給老師投票,希望老師不要打我 天元老師的博文 用python寫春聯 抒寫最真誠的祝福和最美好的祈願 matlab繪製春聯 效果 使用方法 完整 function springscrolls stringname,type,fontsize...