设置文本对齐方式

可以使用 GetTextAlignSetTextAlign 函数查询和设置设备上下文的文本对齐方式。 文本对齐设置确定相对于指定位置的文本定位方式。 文本可以与位置的右侧或左侧对齐或居中;它还可以在点上方或下方对齐。

以下示例演示了一种用于确定设置水平对齐标志的方法:

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 一起使用,因为所选文本未正确呈现。 如果必须使用此标志,可以根据需要取消设置并重置它以避免该问题。