? WinAPI/C++: Вывод вертикального текста
В худшем случае можно сделать из текста битмап потом повернуть его
поворачивается и становится невидимыммонитор новый, срочно
Про попиксельный поворот уже думал, но что то не хочется - может все таки попроще способ найдется.
SetWorldTransform
Хм, интересна. Надо попробовать - о результатах доложусь.
stringFormat.SetFormatFlags(StringFormatFlagsDirectionVertical);
Может все таки у кого то найдется кусочек кода?
http://www.codeproject.com/KB/MFC/UltimateToolbox_StaticTxt....
Смотри, как реализуется, пиши аналог у себя
Смотри, как реализуется, пиши аналог у себя
Почему меня такое не устраивает я уже писал.
Может все таки у кого то найдется кусочек кода?Ну тебе уже всё подсказали, нельзя же быть таким ленивым.
void CVerticalStatic::OnPaint
{
CPaintDC dc(this);
dc.SetGraphicsMode(GM_ADVANCED);
dc.SetMapMode(MM_TEXT);
// get client rectangle
CRect rect;
GetClientRect(rect);
// calculate transformation
XFORM xForm;
double rad = M_PI / 180 * 90;
double cos = ::cos(rad);
double sin = ::sin(rad);
xForm.eM11 = (FLOAT) cos;
xForm.eM12 = (FLOAT) sin;
xForm.eM21 = (FLOAT) -sin;
xForm.eM22 = (FLOAT) cos;
xForm.eDx = (FLOAT) rect.Width;
xForm.eDy = (FLOAT) 0.0;
dc.SetWorldTransform(&xForm);
// change the client rectangle, transformation will change it back
int height = rect.Height;
rect.bottom = rect.Width;
rect.right = height;
// draw text
dc.SetBkColor(::GetSysColor(COLOR_BTNFACE;
CString text;
GetWindowText(text);
dc.SelectObject(GetFont;
dc.DrawText(text, text.GetLength rect, DT_SINGLELINE|DT_VCENTER);
dc.ModifyWorldTransform(NULL, MWT_IDENTITY);
dc.SetGraphicsMode(GM_COMPATIBLE);
}
Я не ленивый, просто голова совсем не варит, когда домой с работы (совсем не связанна с C++/WinAPI) прихожу (это не по работе делаю)
Оставить комментарий
0000
Имеется дочернее STATIC окошко ("с пропорциями EDIT", но только повернутое на 90 градусов хочется вывести в него текст вертикально.Вариант с заданием для окна шрифта, имеющего угол наклона 90 градусов, не подходит, поскольку текст поворачивается и становится невидимым
У кого будут какие нить идеи как это сделать?
P.S. А в Delphi (до 7-ой версии включительно) можно выводить текст вертикально? (если да, то буду сырцы VCL смотреть).