博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows API一日一练(24)DrawText函数
阅读量:4191 次
发布时间:2019-05-26

本文共 1900 字,大约阅读时间需要 6 分钟。

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 }
 
 

转载地址:http://plooi.baihongyu.com/

你可能感兴趣的文章
最值得入手的新旗舰来了:性价比极高
查看>>
《李焕英》票房反超,全靠《唐探3》衬托?
查看>>
采用“不可能的曲面”!沈义人:OPPO Find X3真机上手有惊喜
查看>>
小米再回应造车传闻:一直关注,还没正式立项
查看>>
23岁女子搬家途中跳车身亡!货拉拉官方回应......
查看>>
《你好李焕英》票房反超《唐探3》 成中国影史票房第五
查看>>
又到了充钱的时候!苹果AirPods 3最快下月发布
查看>>
抖音不服诉腾讯管辖权被转至深圳中院 上诉获受理
查看>>
晶圆产能紧缺,成就华为的“无厂模式”反成败笔
查看>>
靠手速!华为新旗舰今晚发布:价格破万
查看>>
入职大厂,我容易吗?
查看>>
腾讯网易侧目!字节跳动游戏官网正式上线:品牌名为“朝夕光年”
查看>>
官方晒中兴AXON 30 Pro真机亮屏谍照:第二代屏下摄像头技术提升明显
查看>>
特斯拉股价周一大跌8.55% 市值缩水640亿美元
查看>>
17999元起!华为Mate X2发布:4月起首批升级鸿蒙系统
查看>>
格力:核心科技有时也是高利贷
查看>>
特斯拉中国公开统一维保价格
查看>>
华为Mate X2黄牛价已超两万,结果小伙子没拿稳,成全网首摔?
查看>>
3月1日见,魅族新品要来了!
查看>>
特斯拉标准续航版Model Y为什么下架?马斯克这么回答
查看>>