DrawText函式

DrawText函式功能:該函式在指定的矩形里寫入格式化文本,根據指定的方法對文本格式化(擴展的制表符,字元對齊、折行等)。

函式原型: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_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_TOP:正文頂端對齊(僅對單行)。DT_VCENTER:正文水平居中(僅對單行)。
DT_WORDBREAK:斷開字。當一行中的字元將會延伸到由lpRect指定的矩形的框線時,此行自動地在字之間斷開。一個回車一換行也能使行折斷。
DT_WORD_ELLIPSIS:截短不符合矩形的正文,並增加橢圓。
注意:DT_CALCRECT, DT_EXTERNALLEADING, DT_INTERNAL, DT_NOCLIP, DT_NOPREFIX值不能和DT_TABSTOP值一起使用。
返回值:如果函式調用成功,返回值是正文的高度;如果函式調用失敗,返回值是0。
Windows NT:若想獲得更多錯誤信息,請調用GetLastError函式。
備註:函式DrawText用設備環境中的字型選擇、正文顏色和背景顏色來寫正文,除非DT_NOCLIP被使用,DrawText裁剪正文,所以它不會出現在指定矩形的外面,除DT_SINGLELINE格式化,其餘的格式都認為正文有多行。
如果選擇的字型對指定的矩形而言太大,DrawText不會試圖去換成一種小字型。
Windows CE:如果為參數uFormat指定DT_CALCRECT值,必須為lpRect指向的RECT結構設定right和bottom成員。Windows CE不支持uFormat為DT_EXTERNALLEADING。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;頭檔案:wingdi.h;庫檔案:gdi32.lib;Unicode:在Windows NT環境下以Unicode和ANSI兩種方式實現。

相關詞條

相關搜尋

熱門詞條

聯絡我們