返回值該函式在指定的矩形裡寫入格式化文字,根據指定的方法對文字格式化(擴充套件的製表符,字元對齊、折行等)。
intdrawtext(hdc hdc, lpctstr lpstring, int ncount, lprect lprect, uint uformat);
hdc:裝置環境控制代碼。
lpstring:指向將被寫入的字串的指標,如果引數ncount是-1,則字串必須是以\0結束的。如果uformat包含dt_modifystring,則函式可為此字串增加4個字元,存放字串的緩衝區必須足夠大,能容納附加的字元。
ncount:指向字串中的字元數。如果ncount為-1,則lpstring指向的字串被認為是以\0結束的,drawtext會自動計算字元數。
lprect:指向結構rect的指標,其中包含正文將被置於其中的矩形的資訊(按邏輯座標)。
uformat:指定格式化正文的方法。它可以下列值的任意組合,各值描述如下:
引數描述
dt_bottom
將正文調整到矩形底部。此值必須和dt_singleline組合。
dt_calcrect
決定矩形的寬和高。
如果正文有多行,drawtext使用lprect定義的矩形的寬度,並擴充套件矩形的底訓以容納正文的最後一行。
如果正文只有一行,則drawtext改變矩形的右邊界,以容納下正文行的最後乙個字元。
上述任何一種情況,drawtext返回格式化正文的高度而不是寫正文。
dt_center
使正文在矩形中水平居中。
dt_vcenter
使正文在矩形中垂直居中。
(dreamsmart注:此引數必須和dt_single連用,否則gdi無法計算目的矩形)
dt_editcontrol
複製多行編輯控制的正文顯示特性。
特殊地,為編輯控制的平均字元寬度是以同樣的方法計算的,此函式不顯示只是部分可見的最後一行。
dt_end_ellipsis或dt_path_ellipsis
可以指定dt_end_ellipsis來替換在字串末尾的字元,或指定dt_path_ellipsis來替換字串中間的字元。
如果字串裡含有反斜扛(\),dt_path_ellipsis盡可能地保留最後乙個反斜槓之後的正文。
字串不會被修改,除非指定了dt_modifystring標誌。
dt_expandtabs
擴充套件製表符,每個製表符的預設字元數是8。
dt_externalleading
在行的高度裡包含字型的外部標頭,通常,外部標頭不被包含在正文行的高度裡。
dt_internal
用系統字型來計算正文度量。
dt_left
正文左對齊。
dt_modifystring
修改給定的字串來匹配顯示的正文。
此標誌必須和dt_end_ellipsis或dt_path_ellipsis同時使用。
dt_noclip
無裁剪繪製當dt_noclip使用時drawtext的使用會有所加快。
dt_noprefix
關閉字首字元的處理,通常drawtext解釋助記字首字元,&為給其後的字元加下劃線,解釋&&為顯示單個&。指定dt_noprefix,這種處理被關閉。
dt_right
正文右對齊。
dt_rtlreading
當選擇進裝置環境的字型是hebrew或arabicf時,為雙向正文安排從右到左的閱讀順序都是從左到右的。
dt_singleline
顯示正文的同一行,回車和換行符都不能折行。
dt_tabstop
設定製表,引數uformat的15"c8位(低位字中的高位位元組)指定每個製表符的字元數,每個製表符的預設字元數是8。
注意:dt_calcrect, dt_externalleading, dt_internal, dt_noclip, dt_noprefix值不能和dt_tabstop值一起使用
dt_top
正文頂端對齊(僅對單行)。dt_vcenter:正文水平居中(僅對單行)。
dt_wordbreak
斷開字。當一行中的字元將會延伸到由lprect指定的矩形的邊框時,此行自動地在字之間斷開。乙個回車一換行也能使行折斷。
dt_word_ellipsis
截短不符合矩形的正文,並增加橢圓。
dt_prefixonly
僅僅在(&)字首字元的位置下繪製乙個下劃線。不繪製字串中的任何其他字元。
輸入的字串: 「a&bc&&d」
正常: 「abc&d」
dt_prefixonly:" _ "
void cviewdlg::
onpaint()
cdc *pdc =
&mdc;
x =10;
y =20;
str.
format(_t
("這是個測試"))
; crect rect
(x, y,
60, y +10)
; pdc-
>
settextcolor
(rgb
(255,0
,0))
; pdc-
>
drawtext
(str,
&rect, dt_left)
;//釋放記憶體
mdc.
deletedc()
;}
如果函式呼叫成功,返回值是正文的高度(邏輯單位)。
如果指定了dt_vcenter或dt_bottom,返回值是lprect->top到繪製的正文的底部的偏移值。 如果函式呼叫失敗,返回值是0
windows nt:若想獲得更多錯誤資訊,請呼叫getlasterror函式。
參考鏈結: drawtext.
函式應用AS Atan2函式應用
package public function init public function djhs e 方法 每日一道理 乙個安靜的夜晚,我獨自一人,有些空虛,有些淒涼。坐在星空下,抬頭仰望美麗天空,感覺真實卻由虛幻,閃閃爍爍,似乎看來還有些跳動。美的一切總在瞬間,如同 海市蜃樓 般,也只是剎那間的...
va start va end 函式應用
1 當無法列出傳遞函式的所有實參的型別和數目時,可用省略號指定參數列 void foo void foo parm list,2 函式引數的傳遞原理 函式引數是以資料結構 棧的形式訪問,從右至左入棧.eg include void fun int a,int main output 1 2 3 4 ...
Mysql 函式應用
摘自 daisylh 部落格 1.用if.then.elseif.delimiter drop function if exists demodb sf1 create function sf1 pid varchar 10 returns varchar 100 begin declare str...