设置文本对齐方式
可以使用 GetTextAlign 和 SetTextAlign 函数查询和设置设备上下文的文本对齐方式。 文本对齐设置确定相对于指定位置的文本定位方式。 文本可以与位置的右侧或左侧对齐或居中;它还可以在点上方或下方对齐。
以下示例演示了一种用于确定设置水平对齐标志的方法:
switch ((TA_LEFT | TA_RIGHT | TA_CENTER) & GetTextAlign(hdc))
{
case TA_LEFT:
.
.
.
case TA_RIGHT:
.
.
.
case TA_CENTER:
.
.
.
}
调用文本输出函数时,还可以使用 SetTextAlign 函数更新当前位置。 例如,以下示例在调用 TextOut 函数时使用 SetTextAlign 函数更新当前位置。 在此示例中, cArial 参数是一个整数,用于指定 Arial 字体的数量。
UINT uAlignPrev;
char szCount[8];
HRESULT hr;
size_t * pcch;
uAlignPrev = SetTextAlign(hdc, TA_UPDATECP);
MoveToEx(hdc, 10, 50, (LPPOINT) NULL);
TextOut(hdc, 0, 0, "Number of Arial fonts: ", 23);
itoa(cArial, szCount, 10);
hr = StringCchLength(szCount, 9, pcch);
if (FAILED(hr))
{
// TODO: write error handler
}
TextOut(hdc, 0, 0, (LPSTR) szCount, *pcch);
SetTextAlign(hdc, uAlignPrev);
注意
使用 ScriptStringOut 时,不应将 SetTextAlign 与 TA_UPDATECP 一起使用,因为所选文本未正确呈现。 如果必须使用此标志,可以根据需要取消设置并重置它以避免该问题。