Приветствую. Бьюсь часа три, не могу понять, как выравнивать текст по вертикали в GDI. Вообще, нужно нарисовать текст вертикально снизу вверх с выравниванием по верху (то есть, по последнему символу). Создал шрифт с lfEscapement = 900. Текст отрисовываю с помощью DrawText. Но он виден, только если uFormat = DT_BOTTOM, при остальных флагах его не видно. Вопрос, почему? Далее, пытаюсь выравнять по правому краю окна, получается. Но по верхнему краю не выходит. Во-первых, снизу получается какой-то отступ (почему?), а во-вторых, верхняя граница строки обрезается. Что делаю не так? И ещё: что означают поля SIZE в GetTextExtentPoint32, когда текст вертикален? То же, что и для горизонтального (cx - длина текста (от 1 до последнего символа), cy- высота), только cx становится вертикалью? Код: Код (Text): SIZE off; GetTextExtentPoint32(dc,szText,nSize,&off); RECT rect; GetClientRect(&rect); // горизонтальное выравнивание по правому краю rect.left = rect.right - off.cy; // вертикальное выравнивание по верхнему краю rect.bottom = rect.top + off.cx; // смотрим границы Rectangle(dc,rect.left,rect.top,rect.right,rect.bottom); // собственно текст DrawText(dc,szText,nSize,&rect,DT_BOTTOM|DT_SINGLELINE); _1774988718__vtext.png