释义 |
CDC::DrawText
virtual int DrawText(LPCTSTR lpszString, int nCount, LPRECT lpRect, UINT nFormat); int DrawText(const CString& str, LPRECT lpRect, UNIT nFormat);
返回值:如果成功,则返回文本高度。
参数:lpszString | 指向要绘制的文本的指针。如果nCount是-1,该字符串必须是空终止的。 | nCount | 字符串中字符数目。如果为-1,lpszString被认为是一个指向空终止的字符串的长指针。DrawText自动计算字符数目。 | lpRect | 指向RECT结构或CRect对象的指针,结构(或对象)中包含有矩形(逻辑单位表示),其中的文本带有格式。 | str | 含有要被绘制的文本的CString对象。 | nFormat | 指定格式化文本的方法。它可以是下列值的组合(可用运算符或位操作符进行组合):DT_BOTTOM | 底部对齐的文本。该值必须同DT_SINGLELINE组合使用。 | DT_CALCRECT | 决定矩形的宽度和高度,如果是多行文字,DrawText将会使用lpRect指向的矩形,并扩展矩形以容纳文本。如果是单行文本,DrawText将会调整矩形的右边以便容纳该行文字。两种情况下,DrawText都返回格式化文本的高度,但并不绘制它们。 | DT_CENTER | 将文本水平居中。 | 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 标志时,该标志才起作用。 注意:某些uFormat标志组合能导致传递的字符串受到修改。DT_MODIFYSTRING同DT_END_ELLIPSIS 或DT_PATH_ELLIPSIS 一起使用会导致字符串修改,导致在CString覆盖中插入断言。 | DT_NOCLIP | 绘制但不剪切, DrawText在使用DT_NOCLIP后总能运行得快一些。 | DT_NOPREFIX | 关闭前缀字符,通常DrawText将助记前缀&理解为其后字符加上下划线,&&前缀符表示显示一个&字符,指定DT_NOPREFIX后,也关闭了这种处理。 | DT_PATH_ELLIPSIS | DT_RIGHT | 文本右对齐。 | DT_SINGLELING | 指定单行,回车与换行不会中断该行。 | DT_TABSTOP | 设置制表位,nFormat的高位字节即为每一制表符所含字符的数目,缺省值为8。 |
|
说明: 在给定的矩形内调用该成员函数格式化文本。通过将制表值扩展到适当大小,使文本在给定矩形内左对齐、右对齐或居中,使文本断成多行以适应给定矩形来格式化文本,格式类型由nFormat指定。 该成员函数适应设备上下文中选取的字体、文本颜色、背景色来显示文本。在采用DT_NOCLIP格式时,DrawText剪切不会使文本显示超过矩形范围,除非选择DT_SINGLELINE格式,所有格式都认为适用于多行文本。 如果所选字体相对于矩形范围过大,DrawText成员函数并不用较小的字体来代替。 如果指定了DT_CALCRECT标志,由lpRect 指定的矩形将会更新,以反映显示文本需要的高度和宽度。 如果TA_UPDATECP文本对齐标志已经设置(见CDC::SetTextAlign),DrawText将在当前位置开始显示文本,而不是在矩形的左边。DrawText在TA_UPDATECP标志已经设置的情况下不会折行(即DT_WORDBREAK标志不起作用)。 文本颜色由CDC::SetTextColor设置。
请参阅: CDC::SetTextColor, CDC::ExtTextOut, CDC::TabbedTextOut, CDC::TextOut, ::DrawText, RECT, CDC::SetTextAlign |