Текст по вертикали

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Текст по вертикали

Сообщение Andrey Fedorov » 02.11.2007 (Пт) 12:26

Сейчас вывожу текст используя DrawText. Сейчас понадобилось добавить опцию позволяющую выводить его вертикально. Как это можно сделать не особо куроча программу?
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 02.11.2007 (Пт) 12:40

CreateFontIndirect?
Подпись проходит рефакторинг

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 02.11.2007 (Пт) 13:42

Lumen писал(а):CreateFontIndirect?


Да похоже - ее и копаю, но что-то не получается.
Хорошо бы примерчик...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 02.11.2007 (Пт) 13:51

API Guide писал(а):
Код: Выделить всё
'In general section
Private Declare Function CreateFontIndirect Lib "gdi32" Alias "CreateFontIndirectA" (lpLogFont As LOGFONT) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Const LF_FACESIZE = 32
Private Type LOGFONT
    lfHeight As Long
    lfWidth As Long
    lfEscapement As Long
    lfOrientation As Long
    lfWeight As Long
    lfItalic As Byte
    lfUnderline As Byte
    lfStrikeOut As Byte
    lfCharSet As Byte
    lfOutPrecision As Byte
    lfClipPrecision As Byte
    lfQuality As Byte
    lfPitchAndFamily As Byte
    lfFaceName(LF_FACESIZE) As Byte
End Type
'In form
Private Sub Form_Load()
    'KPD-Team 1998
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net

    Dim RotateMe As LOGFONT
    'Set graphic-mode to 'persistent graphic'
    Me.AutoRedraw = True
    'Rotate degrees
    Deg = 270
    'Size (in points)
    Size = 20
    'Set the rotation degree
    RotateMe.lfEscapement = Deg * 10
    'Set the height of the font
    RotateMe.lfHeight = (Size * -20) / Screen.TwipsPerPixelY
    'Create the font
    rFont = CreateFontIndirect(RotateMe)
    'Select the font n the Form's device context
    Curent = SelectObject(Me.hdc, rFont)
    'Print some text ...
    Me.CurrentX = 500
    Me.CurrentY = 200
    Me.Print "hello world"
End Sub

Подпись проходит рефакторинг

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 02.11.2007 (Пт) 14:27

Может вызывать DrawText последним параметром DT_CENTER?
Подпись проходит рефакторинг

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 02.11.2007 (Пт) 14:35

Lumen писал(а):Может вызывать DrawText последним параметром DT_CENTER?


Атрибуты вывода:

DT_VCENTER + DT_WORD_ELLIPSIS + DT_SINGLELINE

Но вертикальный текст неверно центруется...

DT_CENTER - как-то не спасает. А точнее - с ним текст выводится куда-то вне региона и оттого не виден...
Вложения
p.png
p.png (1.14 Кб) Просмотров: 135
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 02.11.2007 (Пт) 14:53

Дык в чем-же дело? Впечатление такое что в RECT координаты надо задавать по другому...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 02.11.2007 (Пт) 15:22

Приложен примитивный проектик с одной функцией. Если кто может - подскажите что поправить для правильного отображения вертикального текста...
Вложения
Sample.rar
(1.81 Кб) Скачиваний: 53
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 41

    TopList