设置文本对齐方式

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

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

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