Establecimiento de la alineación de texto
Puede consultar y establecer la alineación de texto para un contexto de dispositivo mediante las funciones GetTextAlign y SetTextAlign . La configuración de alineación de texto determina cómo se coloca el texto en relación con una ubicación especificada. El texto se puede alinear a la derecha o izquierda de la posición o centrarse sobre él; también se puede alinear por encima o por debajo del punto.
En el ejemplo siguiente se muestra un método para determinar qué marca de alineación horizontal se establece:
switch ((TA_LEFT | TA_RIGHT | TA_CENTER) & GetTextAlign(hdc))
{
case TA_LEFT:
.
.
.
case TA_RIGHT:
.
.
.
case TA_CENTER:
.
.
.
}
También puede usar la función SetTextAlign para actualizar la posición actual cuando se llama a una función de salida de texto. Por ejemplo, en el ejemplo siguiente se usa la función SetTextAlign para actualizar la posición actual cuando se llama a la función TextOut . En este ejemplo, el parámetro cArial es un entero que especifica el número de fuentes 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);
Nota
No debe usar SetTextAlign con TA_UPDATECP cuando use ScriptStringOut, porque el texto seleccionado no se representa correctamente. Si debe usar esta marca, puede anular la configuración y restablecerla según sea necesario para evitar el problema.