设置文本对齐方式
可以使用 GetTextAlign 和 SetTextAlign 函数查询和设置设备上下文的文本对齐方式。 文本对齐设置确定文本相对于指定位置的定位方式。 文本可以对齐到位置的右侧或左侧或居中;也可以对齐在点上方或下方。
以下示例演示用于确定设置水平对齐标志的方法:
switch ((TA_LEFT | TA_RIGHT | TA_CENTER) & GetTextAlign(hdc))
{
case TA_LEFT:
.
.
.
case TA_RIGHT:
.
.
.
case TA_CENTER:
.
.
.
}
还可以使用 SetTextAlign 函数在调用文本输出函数时更新当前位置。 例如,以下示例使用 SetTextAlign 函数在调用 TextOut 函数时更新当前位置。 在此示例中, 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 一起使用,因为所选文本未正确呈现。 如果必须使用此标志,可以根据需要取消设置和重置,以避免问题。