中年人学C语言Windows程序设计,4 设置文本对齐方式SetTextAlign
SetTextAlign 函数为指定设备环境设置文本的对齐标志。
函数功能:
指定设备环境设置文本的对齐标志。
API 函数原型:
UINT SetTextAlign(
_In_ HDC hdc,
_In_ UINT fMode
);
参数解析:
使用下面的列表中的掩码指定文本对齐方式:
若当前字体有一条缺省的垂直基线(如Kanji),下列值用于取代 TA_BASELINE 和 TA_CENTER:
返回值:
-
如果函数调用失败,返回值是 GDI_ERROR; -
如果函数调用成功,返回值是文字对齐方式的前一个设置。
备注:
-
限定矩形是指能将正文字符串的所有字符单元限定于其中的矩形 -
TextOut 和 ExtTextOut 函数用文字对齐标志来将一个正文字符串定位于显示器或者其他设备 -
该标志指定了基准点与限定正文的矩形的位置关系,基准点可以是当前位置,也可是传给正文输出函数的一个点 -
设置左对齐文本的做好方法可以是如下:
SetTextAlign (hdc, GetTextAlign(hdc) & (~TA_CENTER))
或者
SetTextAlign (hdc,TA_LEFT | <other flags>)
你当然可以使用 SetTextAlign (hdc, TA_LEFT) 来达到这个目的,但是这个方法会丢失所有的垂直基线或者从右到左的设置。
- 调用 SetTextAlign 函数时,如果使用 TA_UPDATECP 标志,Windows 会忽略 TextOut 的 xStart 和 yStart 参数,而使用由 MoveToEx、LineTo 或更改目前位置的另一个函数设定的位置。
代码实例
这里用两个例子就可以说明: 在基准点 200,200处显示文字,采用两种对齐方式: 例子1 left 和 top 对齐 例子2 right 和bottom 对齐
例子1: left 和 top 对齐
SetTextAlign(hdc, TA_LEFT|TA_TOP);
TextOut(hdc, 200, 200, TEXT("我是例子1,左上对齐"), 10);
例子2:right 和bottom 对齐
SetTextAlign(hdc, TA_RIGHT|TA_BOTTOM);
TextOut(hdc, 200, 200, TEXT("我是例子1,左上对齐"), 10);
例子1和例子2的对比
例子3:居中 对齐
SetTextAlign(hdc, TA_CENTER);
TextOut(hdc, 200, 200, TEXT("我是例子3,居中对齐"), 10);
|