Partager via


Définition de l’alignement du texte

Vous pouvez interroger et définir l’alignement du texte d’un contexte d’appareil à l’aide des fonctions GetTextAlign et SetTextAlign . Les paramètres d’alignement du texte déterminent la position du texte par rapport à un emplacement spécifié. Le texte peut être aligné à droite ou à gauche de la position ou centré sur celle-ci ; il peut également être aligné au-dessus ou au-dessous du point.

L’exemple suivant montre une méthode permettant de déterminer quel indicateur d’alignement horizontal est défini :

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

Vous pouvez également utiliser la fonction SetTextAlign pour mettre à jour la position actuelle lorsqu’une fonction de sortie de texte est appelée. Par instance, l’exemple suivant utilise la fonction SetTextAlign pour mettre à jour la position actuelle lorsque la fonction TextOut est appelée. Dans cet exemple, le paramètre cArial est un entier qui spécifie le nombre de polices 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); 

Notes

Vous ne devez pas utiliser SetTextAlign avec TA_UPDATECP lorsque vous utilisez ScriptStringOut, car le texte sélectionné n’est pas rendu correctement. Si vous devez utiliser cet indicateur, vous pouvez l’annuler et le réinitialiser si nécessaire pour éviter le problème.