Вы можете сделать запрос и установить выравнивание текста для контекста устройства при помощи использования функции GetTextAlign и SetTextAlign. Параметры настройки выравнивания текста обуславливают, как текст займет место относительно заданного местоположения. Текст может быть выровнен по правой или левой стороне, или выровнен по центру; он может также быть выровнен верхнему или нижнему краю.
Нижеследующий пример показывает способ определения, который устанавливает флажок горизонтального выравнивания :
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]; uAlignPrev = SetTextAlign(hdc, TA_UPDATECP); MoveToEx(hdc, 10, 50, (LPPOINT) NULL); TextOut(hdc, 0, 0, "Number of Arial fonts: ", 23); itoa(cArial, szCount, 10); TextOut(hdc, 0, 0, (LPSTR) szCount, strlen(szCount)); SetTextAlign(hdc, uAlignPrev); |
Обратите внимание! на то, что Вам не следует использовать функцию SetTextAlign с флажком TA_UPDATECP, когда Вы используете функцию ScriptStringOut, потому что выбранный текст предоставляется не правильно. Если Вы используете этот флажок, Вам нужно его не устанавливать и сбрасывать по мере необходимости, чтобы избежать проблем. |