Impostazione dell'allineamento del testo
È possibile eseguire query e impostare l'allineamento del testo per un contesto di dispositivo usando le funzioni GetTextAlign e SetTextAlign . Le impostazioni di allineamento del testo determinano la posizione del testo rispetto a una posizione specificata. Il testo può essere allineato a destra o a sinistra della posizione o centrato su di esso; può anche essere allineato sopra o sotto il punto.
Nell'esempio seguente viene illustrato un metodo per determinare quale flag di allineamento orizzontale è impostato:
switch ((TA_LEFT | TA_RIGHT | TA_CENTER) & GetTextAlign(hdc))
{
case TA_LEFT:
.
.
.
case TA_RIGHT:
.
.
.
case TA_CENTER:
.
.
.
}
È anche possibile usare la funzione SetTextAlign per aggiornare la posizione corrente quando viene chiamata una funzione di output di testo. Ad esempio, nell'esempio seguente viene usata la funzione SetTextAlign per aggiornare la posizione corrente quando viene chiamata la funzione TextOut . In questo esempio il parametro cArial è un intero che specifica il numero di tipi di carattere 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
Non è consigliabile usare SetTextAlign con TA_UPDATECP quando si usa ScriptStringOut, perché il testo selezionato non viene eseguito correttamente. Se è necessario usare questo flag, è possibile annullare e reimpostarlo in base alle esigenze per evitare il problema.