Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
Penumbra
-
- Обычный пользователь

-
-
- Сообщения: 62
- Зарегистрирован: 24.01.2009 (Сб) 13:36
Penumbra » 31.08.2011 (Ср) 2:59
на часах 3 ночи, что-то я тормозить стал..
поворачиваю текст на угол aAngle
- Код: Выделить всё
Private Sub TextOutAngle(dc As Long, Fontname As String, x As Long, y As Long, aAngle, aSize As Long, txt As String)
Dim hFont, Fontold As Long
If Len(txt) = 0 Then Exit Sub
Call SetBkMode(dc, TRANSPARENT)
hFont = CreateFont(-aSize, 0, aAngle * 10, 0, FW_NORMAL, 0, 0, 0, 1, 4, &H10, 2, 4, Fontname)
Fontold = SelectObject(dc, hFont)
Call TextOut(dc, x, y, (txt), Len(txt))
Call SelectObject(dc, Fontold)
Call Delet
все вроде пучком, но текст поворачивается вокруг верхней левой точки (координата х+высота шрифта)
вот чтото не могу разобраться как вращать с точкой по центру текста – простая математика вроде..

-
Mikle
-
- Изобретатель велосипедов

-

-
- Сообщения: 4168
- Зарегистрирован: 25.03.2003 (Вт) 14:02
- Откуда: Туапсе
Mikle » 31.08.2011 (Ср) 15:05
Берёшь вектор от верхнего левого угла с центру.
Рассчитываешь поворот этого вектора на нужный угол.
Вычитаешь из исходного вектора полученный.
Смещаешь текст после поворота на полученную величину.
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: AhrefsBot, Google-бот, Majestic-12 [Bot], PetalBot, Yandex-бот и гости: 5