DrawTextEx

【勇芳软件工作室】汉化HomePreviousNext

[Now Supported on Windows NT]

DrawTextEx函数在指定的矩形中绘制格式化的文本。

int DrawTextEx(

HDC【HDC】,//处理设备上下文
LPTSTR【lpchText】,//指向要绘制的字符串的指针
INT【cchText】,//绘制字符串的长度
LPRECT【LPRC】,//指向矩形坐标的指针
UINT【dwDTFormat】,//格式化选项
LPDRAWTEXTPARAMS【lpDTParams】//指向结构的更多选项的指针
); 

参数

【HDC】

标识要绘制的设备上下文。

【lpchText】

指向字符串绘制。如果【cchText】参数为-1,则该字符串必须为空终止。

【cchText】

指定由【lpchText】参数指定的字符串的长度(以字符为单位)。如果字符串为空终止,则此参数可以为-1以计算长度。

【LPRC】

指向RECT结构,其中包含要在其中格式化文本的逻辑坐标中的矩形。

【dwDTFormat】

指定格式选项。此参数可以是以下值中的一个或多个:

含义
DT_BOTTOM将文本对齐到矩形的底部。该值必须与DT_SINGLELINE组合。
DT_CALCRECT确定矩形的宽度和高度。如果有多行文本,DrawTextEx使用【LPRC】参数指向的矩形的宽度,并扩展矩形的底部以限制文本的最后一行。如果只有一行文本,DrawTextEx修改矩形的右侧,以便它限定行中的最后一个字符。在这两种情况下,DrawTextEx返回格式化文本的高度,但不绘制文本。
DT_CENTER在矩形中居中文字。
DT_EDITCONTROL复制多行编辑控件的文本显示特性。具体而言,以与编辑控件相同的方式计算平均字符宽度,并且该函数不显示部分可见的最后一行。
DT_END_ELLIPSIS或DT_PATH_ELLIPSIS如果需要,用椭圆替换给定字符串的一部分,以使结果符合指定的矩形。除非指定了DT_MODIFYSTRING标志,否则不修改给定的字符串。

您可以指定DT_END_ELLIPSIS来替换字符串末尾的字符,或者使用DT_PATH_ELLIPSIS替换字符串中间的字符。如果字符串包含反斜杠(\\)字符,则DT_PATH_ELLIPSIS会在最后一个反斜杠之后保留尽可能多的文本。

DT_EXPANDTABS展开制表符字符。每个标签的默认字符数为8。
DT_EXTERNALLEADING包括字体外部领先于行高。通常,外部线条不包括在文本行的高度。
DT_LEFT将文本对准左侧。
DT_MODIFYSTRING修改给定的字符串以匹配显示的文本。除非指定了DT_END_ELLIPSIS或DT_PATH_ELLIPSIS标志,否则此标志无效。
DT_NOCLIP画没有剪辑。当使用DT_NOCLIP时,DrawTextEx的速度更快一些。
DT_NOPREFIX关闭前缀字符的处理。通常,DrawTextEx将和号(&)助记符前缀字符解释为用于强调后面的字符的指令,双符号(& &)助记符前缀字符作为打印单个的指令符号。通过指定DT_NOPREFIX,此处理关闭。
DT_RIGHT将文本对齐到右侧。
DT_RTLREADING【HDC】中选择的字体是希伯来语或阿拉伯语字体时,双向文本右侧到左侧阅读顺序的布局。所有文本的默认阅读顺序是从左到右。
DT_SINGLELINE仅在一行上显示文字。回车和换行不会打破行。
DT_TABSTOP设置制表位。【lpDTParams】参数指向的DRAWTEXTPARAMS结构指定每个制表位的平均字符宽度数。
DT_TOP顶部对齐文本(仅限单行)。
DT_VCENTER纵向中心文本(仅限单行)。
DT_WORDBREAK打破话如果一个单词延伸超过【LPRC】参数指定的矩形边缘,则单词之间的行会自动断开。回车换行序列也打破了行。

【dwDTParams】

指向DRAWTEXTPARAMS结构,指定其他格式选项。此参数可以为NULL。

返回值

如果函数成功,则返回值为文本高度。

如果函数失败,返回值为零。

也可以看看

DrawText, DRAWTEXTPARAMS