设置文本对齐
工程模板:
使用函数:SetTextAlign
UINT SetTextAlign ( HDC hdc, UINT align );
setextAlign函数为指定的设备上下文设置文本对齐标志。
alilgn使用下面列表中值的掩码进行文本对齐。只能从影响水平和垂直对齐的标志中选择一个标志。此外,只能选择两个改变当前位置的标志中的一个。
|
参考点将在文本的基线上。 |
|
参考点将位于边界矩形的下边缘。 |
|
参考点将位于边界矩形的上边缘。 |
|
参考点将与边界矩形的中心水平对齐。 |
|
参考点将位于边界矩形的左边缘。 |
|
参考点将位于边界矩形的右边缘。 |
|
每次文本输出调用后,当前位置不会更新。参考点被传递到文本输出函数。 |
|
中东语言版Windows:文本按从右到左的阅读顺序排列,而不是按默认的从左到右的顺序排列。仅当设备上下文中选择的字体为希伯来语或阿拉伯语时,此选项才适用。 |
|
当前位置在每次文本输出调用后更新。当前位置用作参考点。 |
当当前字体有一个垂直默认基线时,如日文汉字,必须使用以下值而不是ta_基线和ta_中心。
|
参考点将在文本的基线上。 |
|
参考点将与边界矩形的中心垂直对齐。 |
一个例子:
for (int i = 0; i < 128; i++) { StringCchPrintf(szstr, STRSIZE, TEXT("%s: %u"), TEXT("List"), i); StringCchLength(szstr, STRSIZE, &strsize); TextOut(hdc, xstr + STRSIZE / 2 * cxchar, ystr + i * cychar, szstr, strsize); SetTextAlign(hdc, TA_RIGHT | TA_TOP); StringCchPrintf(szstr, STRSIZE, TEXT("%s: %u"), TEXT("List"), i); StringCchLength(szstr, STRSIZE, &strsize); TextOut(hdc, xstr + 3 * STRSIZE / 4 * cxchar, ystr + i * cychar, szstr, strsize); SetTextAlign(hdc, TA_LEFT | TA_TOP); }