Definindo o alinhamento do texto

Você pode consultar e definir o alinhamento de texto para um contexto de dispositivo usando as funções GetTextAlign e SetTextAlign . As configurações de alinhamento de texto determinam como o texto é posicionado em relação a um local especificado. O texto pode ser alinhado à direita ou à esquerda da posição ou centralizado sobre ele; ele também pode ser alinhado acima ou abaixo do ponto.

O exemplo a seguir mostra um método para determinar qual sinalizador de alinhamento horizontal está definido:

switch ((TA_LEFT | TA_RIGHT | TA_CENTER) & GetTextAlign(hdc)) 
{ 
    case TA_LEFT: 
       . 
       . 
       . 
    case TA_RIGHT: 
       . 
       . 
       . 
    case TA_CENTER: 
       . 
       . 
       . 
} 

Você também pode usar a função SetTextAlign para atualizar a posição atual quando uma função de saída de texto é chamada. Por exemplo, o exemplo a seguir usa a função SetTextAlign para atualizar a posição atual quando a função TextOut é chamada. Neste exemplo, o parâmetro cArial é um inteiro que especifica o número de fontes 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); 

Observação

Você não deve usar SetTextAlign com TA_UPDATECP ao usar ScriptStringOut, pois o texto selecionado não é renderizado corretamente. Se você precisar usar esse sinalizador, poderá desajustá-lo e redefini-lo conforme necessário para evitar o problema.