当前位置:首页 > windos > 正文

Windows API一日一练 24 DrawText函数

DrawText 函数与前面介绍的 TextOut 函数都是文本输出函数,但它们是有区别的。 DrawText 函数是格式化输出函数,而 TextOut 函数不具备这样的功能。因而 DrawText 函数比 TextOut 函数功能强大,可以让文本输出时左对齐,或者右对齐,或者中间对齐,还可以让文本适应输出矩形内,如果超出时可以截断,或者显示为省略号的方式。 DrawText 函数在表格方式显示时肯定要使用到的函数。   函数 DrawText 声明如下: WINUSERAPI int WINAPI DrawTextA(     __in HDC hdc,     __inout_ecount(cchText) LPCSTR lpchText,     __in int cchText,     __inout LPRECT lprc,     __in UINT format); WINUSERAPI int WINAPI DrawTextW(     __in HDC hdc,     __inout_ecount(cchText) LPCWSTR lpchText,     __in int cchText,     __inout LPRECT lprc,     __in UINT format); #ifdef UNICODE #define DrawText DrawTextW #else #define DrawText DrawTextA #endif // !UNICODE hdc 是当前设备的句柄。 lpchText 是输出文本的缓冲区首地址。 cchText 是输出文本的字符个数。 lprc 是输出的显示区域。 format 是用什么格式输出。     调用这个函数的例子如下: #001 // #002 // 界面显示输出 . #003 // #004 // 蔡军生  2007/08/27 QQ:9073204 深圳 #005 // #006 void CCaiWinMsg::OnDraw(HDC hDC) #007 { #008  // #009  std::wstring strShow(_T("C++ 窗口类的实现 ,2007-08-27")); #010  TextOut(hDC,10,10,strShow.c_str(),(int)strShow.length());     #011  #012  // 设置输出字符串的颜色 . #013  COLORREF crOld = SetTextColor(hDC,RGB(255,0,0)); #014  #015  RECT rcText; #016  #017  // 显示不全 . #018  rcText.left = 10; #019  rcText.top = 30; #020  rcText.right = 100; #021  rcText.bottom = 50; #022  #023  DrawText(hDC,strShow.c_str(),(int)strShow.length(),&rcText, #024        DT_LEFT|DT_SINGLELINE|DT_END_ELLIPSIS); #025  #026  // 完全显示 , 左对齐 . #027   rcText.left = 10; #028  rcText.top = 50; #029  rcText.right = 300; #030  rcText.bottom = 80; #031  #032  DrawText(hDC,strShow.c_str(),(int)strShow.length(),&rcText, #033         DT_LEFT|DT_SINGLELINE|DT_END_ELLIPSIS); #034  #035   #036  SetTextColor(hDC,RGB(0,0,255)); #037  // 完全显示 , 右对齐 . #038  rcText.left = 10; #039  rcText.top = 80; #040  rcText.right = 300; #041  rcText.bottom = 110; #042  #043  strShow = _T("A&bcd"); #044  DrawText(hDC,strShow.c_str(),(int)strShow.length(),&rcText, #045         DT_RIGHT|DT_SINGLELINE|DT_END_ELLIPSIS); #046  #047  #048  // #049  SetTextColor(hDC,crOld); #050 }    

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://www.cnblogs.com/captainbed