SetTextAlign设置文本对齐方式:1 水平对齐的右对齐理解误区分析

7694 人浏览 | 时间: 2015-12-07 16:51:39 | 作者: codexia 会员文章,禁止转载
    我们在WM_PAINT消息处理时,最常用的就是输出文本。文本输出我们可以使用DrawText和TextOut两个函数之一,DrawText函数指定字符串长度时可以传入-1表示字符串是以空字符结尾的,这样就不用去计算字符串的长度,比较方便。当然你可以可以传入字符串的长度值。而TextOut函数则只能传入字符串的长度值指定长度,不能使用-1。而DrawText函数指定输出文字的起始坐标是通过矩形区域,所以不方便,TextOut直接在参数输入xy坐标很方便。
    两个函数都要求指定输出文字的起始坐标xy的值。这个坐标是相对于客户区的坐标,客户区默认情况下左上角为原点(0,0),从左到右为x轴正向,从上到下为y轴正向。
    默认情况下,也就是简单的输入起始坐标,然后传入字符串和字符串长度,就可以输出文字了。当然,两个函数都要hdc设备描述表句柄作为第一个参数。默认情况下,我们可以看到文字是从左到右输出的,第一个字紧靠着输入的x坐标,实际上就是从x坐标处开始输出的。这就是左对齐方式输出字符串,是默认的方式。在WM_PAINT消息处理中,我们写这样的代码就可以了,代码如下:
hdc = BeginPaint(hwnd,&ps);
TextOut(hdc,0,0,_T("默认左对齐:C++技术网http://www.cjjjs.com"),lstrlen(_T("默认左对齐:C++技术网http://www.cjjjs.com")));
    左对齐是水平方向对齐的一种,另外的就是右对齐。其实左对齐一般我们都比较好理解,和我们写字的顺序和方向一致。而右对齐有时候会给初学者带来疑问。可能你比较熟的情况下,也很容易理解右对齐。不过我们来讨论右对齐的问题,就会更加清晰的去分析,而不是大概的认为是那么回事就行了的。
    那么我们先来看看我画的一张图片,很好的说明了这个问题。看下图:
   
开通会员付1C币>>阅读全文
标注
评论
站内搜
百度搜
传送到手机
手机扫码,识别文字,完成传送x
加载中...
标注内容x
加载中...
添加标注x
收藏 0 点赞 0