DrawText的使用

 DrawText函数简单介绍
    这个函数的作用很简单,就是在指定的区域内输出格式化的文本。
    函数原型:
int DrawText(
  HDC hDC,
  LPCTSTR lpString,
  int nCount,
  LPRECT lpRect,
  UNIT uFormat
);
    hDC是设备上下文句柄。lpString指向将要绘制的UNICODE文本。nCount是要输出的字符数,如果nCount = -1,则Windows自动计算字符数,不过此时lpString所指向的必须是以NULL结尾的字符串。lpRect指向rect结构体,指定了文本格式化的矩形区域。uFormat是格式化标记,也是这里面稍显复杂的一个参数。
    下面是几个常用的格式化标记:
    DT_CALCRECT:这个参数比较重要,可以使DrawText函数计算出输出文本的尺寸。如果输出文本有多行,DrawText函数使用 lpRect定义的矩形的宽度,并扩展矩形的底部以容纳输出文本的最后一行。如果输出文本只有一行,则DrawText函数改变矩形的右边界,以容纳下正文行的最后一个字符。出现上述任何一种情况,DrawText函数将返回格式化文本的高度,而不是绘制文本。
    DT_CENTER:指定文本水平居中显示。
    DT_VCENTER:指定文本垂直居中显示。该标记只在单行文本输出时有效,所以它必须与DT_SINGLELINE结合使用。
    DT_SINGLELINE:单行显示文本,回车和换行符都不断行。
② DrawText函数使用举例
    //Get the height and length of the string.
    DrawText(hdc,szHello,-1,&rect, DT_CALCRECT | DT_CENTER | DT_SINGLELINE);
    // Draw the text
    DrawText(hdc,szHello,-1,&rectCli,DT_CENTER | DT_SINGLELINE);
③ 经常与DrawText结合使用的几个函数
    (1) SetTextColor 设置文本前景色
COLORREF SetTextColor(
  HDC hdc,
  COLORREF crColor
);
(2) SetBkColor 设置文本背景色
COLORREF SetBkColor(
  HDC hdc,
  COLORREF crColor
);
    (3) SetBkMode 设备背景色模式为透明与不透明
int SetBkMode(
  HDC hdc,
  int iBkMode
);

你可能感兴趣的:(DrawText的使用)