[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。
返回值
如果函数成功,则返回值为文本高度。
如果函数失败,返回值为零。
也可以看看