Как написать в Label (текст) не горизонтально, а вертикально

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
PilatP
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 117
Зарегистрирован: 24.08.2009 (Пн) 1:00
Откуда: Херсон

Как написать в Label (текст) не горизонтально, а вертикально

Сообщение PilatP » 17.04.2011 (Вс) 22:33

Привет всем вот столкнулся с проблемкой нужно написать текст в Label не горизонтально, а вертикально. В инете нашол только это
Код: Выделить всё
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
Private Sub Form_Load()
    Dim RotateMe As LOGFONT
    Me.AutoRedraw = True
    Deg = 290
    Size = 20
    RotateMe.lfEscapement = Deg * 10
    RotateMe.lfHeight = (Size * -20) / Screen.TwipsPerPixelY
    rFont = CreateFontIndirect(RotateMe)
    Curent = SelectObject(Me.hdc, rFont)
    Me.CurrentX = 500
    Me.CurrentY = 200
    Me.Print ":-)"
End Sub


Код рабочий я проверял но как в нем задать шрифт, цвет шрифта, размер шрифта так и не понял :oops: есле кто сталкивался с подобной проблемой поделитесь опытом.
Зарание спасибо. :oops:
Я не волшебник, я только учусь)

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Как написать в Label (текст) не горизонтально, а вертика

Сообщение Viper » 18.04.2011 (Пн) 4:57

lfFaceName(LF_FACESIZE) As Byte - имя шрифта
lfHeight As Long - размер шрифта
А цвет шрифта определяется цветом кисти (или пера?) выбраной в контекст устройства.
Весь мир матрица, а мы в нем потоки байтов!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как написать в Label (текст) не горизонтально, а вертика

Сообщение Хакер » 18.04.2011 (Пн) 6:11

Viper писал(а):А цвет шрифта определяется цветом кисти (или пера?)

Ни то, ни другое. Цвет текста — это отдельная переменная контекста устройства.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

PilatP
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 117
Зарегистрирован: 24.08.2009 (Пн) 1:00
Откуда: Херсон

Re: Как написать в Label (текст) не горизонтально, а вертика

Сообщение PilatP » 18.04.2011 (Пн) 8:43

Спасибо за коментарии, но мне нужен код с пояснениями, с размером я вчера разобрался, но вот с цветом нет. Мне нужна действующая переменная куда записывать цвет и пример как это сделать, зарание спасибо!
Я не волшебник, я только учусь)

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как написать в Label (текст) не горизонтально, а вертика

Сообщение Хакер » 18.04.2011 (Пн) 8:45

—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

PilatP
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 117
Зарегистрирован: 24.08.2009 (Пн) 1:00
Откуда: Херсон

Re: Как написать в Label (текст) не горизонтально, а вертика

Сообщение PilatP » 18.04.2011 (Пн) 9:29

Хакер спасибо за ссылку но я просил код типа

Код: Выделить всё
Private Type LOGFONT
   [b] lfColor As Long[/b]
   
    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

    Dim RotateMe As LOGFONT
   
    Deg = -270  'угол поворота
    Size = 8      'размер шрифта
   
    'RotateMe.lfFaceName(0) = StrConv(FontFace, vbFromUnicode) ' Почемуто не работает думаю причина в том что FontFace это ссылка на фонт а ему нужно типа константы
    [b]RotateMe.lfColor = Color [/b]
    RotateMe.lfEscapement = Deg * 10
    RotateMe.lfHeight = (Size * -20) / Screen.TwipsPerPixelY
    rFont = CreateFontIndirect(RotateMe)
    Curent = SelectObject(Pic_Slider.hdc, rFont)
    Pic_Slider.CurrentX = 9
    Pic_Slider.CurrentY = X

    Pic_Slider.Print tText & "%"


Я разберусь с кодом есле он работает, Зарание спасибо
Я не волшебник, я только учусь)

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Как написать в Label (текст) не горизонтально, а вертика

Сообщение iGrok » 18.04.2011 (Пн) 11:30

А это и есть весь код.
SetTextColor Pic_Slider.hdc, vbYellow
Где-нибудь перед выводом текста на печать...
label:
cli
jmp label

PilatP
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 117
Зарегистрирован: 24.08.2009 (Пн) 1:00
Откуда: Херсон

Re: Как написать в Label (текст) не горизонтально, а вертика

Сообщение PilatP » 18.04.2011 (Пн) 12:28

С цветом разобрался Lab_Slid.ForeColor = Color
Но шрифт не меняется

Код: Выделить всё
Const FontFace As String = "Times New Roman"
Private Const LF_FACESIZE = 32


Dim RotFont As LOGFONT   
    Deg = -270
    Size = 8   
    RotFont.lfFaceName(LF_FACESIZE) = Font_Value.Name
                 'RotFont.lfFaceName(LF_FACESIZE) = FontFace
                 'RotFont.lfFaceName = StrConv(FontFace, vbFromUnicode)
    RotFont.lfEscapement = Deg * 10
    RotFont.lfHeight = (Size * -20) / Screen.TwipsPerPixelY
    rFont = CreateFontIndirect(RotFont)
    Curent = SelectObject(Lab_Slid.hdc, rFont)
     Lab_Slid.CurrentX = 0
     Lab_Slid.CurrentY = X
     'Lab_Slid.FontName = Font_Value.Name
     Lab_Slid.ForeColor = Color
     Lab_Slid.Print t1


Кто знает приведите код. Зарание спасибо.
Я не волшебник, я только учусь)

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Как написать в Label (текст) не горизонтально, а вертика

Сообщение iGrok » 18.04.2011 (Пн) 13:49

Я правильно понимаю, что ты пишешь код вообще не задумываясь над тем, что он значит?
label:
cli
jmp label

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Как написать в Label (текст) не горизонтально, а вертика

Сообщение Viper » 18.04.2011 (Пн) 17:58

Хакер писал(а):
Viper писал(а):А цвет шрифта определяется цветом кисти (или пера?)
Ни то, ни другое. Цвет текста — это отдельная переменная контекста устройства.
Нда, это я погорячился с утра то.
Весь мир матрица, а мы в нем потоки байтов!

PilatP
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 117
Зарегистрирован: 24.08.2009 (Пн) 1:00
Откуда: Херсон

Re: Как написать в Label (текст) не горизонтально, а вертика

Сообщение PilatP » 19.04.2011 (Вт) 0:13

Вот спасибо вам ребята, что вы между собой тут отношения выясняете :? . Люди здесь задают вопросы по тому что сами справится не способны, или еще не готовы, а вы что, выясняете кто круче или умней. Я здесь зарегистрирован давно, и справляюсь сам, но иногда(очень редко) требуется помощь и прихожу сюда с конкретным вопросом, и по сути никто и ничем мне не помог, кроме Mikle когда я изучал DX8 он здорово помог всегда четкие ответы или конкретная ссылка на место где все обьяснено. Чесно я разочарован! :evil:
Я не волшебник, я только учусь)

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как написать в Label (текст) не горизонтально, а вертика

Сообщение Хакер » 19.04.2011 (Вт) 0:15

PilatP писал(а):Чесно я разочарован! :evil:

Мы растроганы.
Честно, мы даём пищу, но жевать и проталкивать её в твоей пищевод побрезгуем.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Как написать в Label (текст) не горизонтально, а вертика

Сообщение FireFenix » 19.04.2011 (Вт) 0:26

PilatP писал(а):Чесно я разочарован! :evil:

Твои знания ЯП огорчают нас :cry:

Код: Выделить всё
Dim lfFaceName(LF_FACESIZE) As Byte

Код: Выделить всё
lDim FontFace As String = "Times New Roman"

Ты чувствуешь разницу между между массивом Byte и String?

Код: Выделить всё
RotFont.lfFaceName(LF_FACESIZE) = Font_Value.Name
'RotFont.lfFaceName(LF_FACESIZE) = FontFace

Присвоение String элементу массива (байту) - вообще эпично
Последний раз редактировалось FireFenix 19.04.2011 (Вт) 0:30, всего редактировалось 1 раз.
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как написать в Label (текст) не горизонтально, а вертика

Сообщение Хакер » 19.04.2011 (Вт) 0:28

FireFenix писал(а):Присвоение String элементу массива (байту) - вообще эпично

Это обычное дело в VB.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Как написать в Label (текст) не горизонтально, а вертика

Сообщение FireFenix » 19.04.2011 (Вт) 0:34

Хакер писал(а):
FireFenix писал(а):Присвоение String элементу массива (байту) - вообще эпично

Это обычное дело в VB.

Осмысленное String (Len > 1) -> Byte? :shock:

Если String -> Byte()? то это понятно
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как написать в Label (текст) не горизонтально, а вертика

Сообщение Хакер » 19.04.2011 (Вт) 1:04

FireFenix писал(а):Осмысленное String (Len > 1) -> Byte? :shock:

Такое тоже, но не в данном случае :)
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

PilatP
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 117
Зарегистрирован: 24.08.2009 (Пн) 1:00
Откуда: Херсон

Re: Как написать в Label (текст) не горизонтально, а вертика

Сообщение PilatP » 26.04.2011 (Вт) 2:50

Да уш! Народ вы наверно так ничего и не поняли я не автор этого кода В инете нашол только это
я пытался в нем разобратся,,
Мы растроганы.
Честно, мы даём пищу, но жевать и проталкивать её в твоей пищевод побрезгуем

Никакой "пищи" от вас не поступило.
Ты чувствуешь разницу между между массивом Byte и String?
Я знаю раздницу, но мне без раздницы Byte или String используется в коде, мне нужен рабочий код, или пример. В итоге вы развели здесь демагогию, и никакой помощи от вас я так и не получил.
В итоге я разобрался без вас. Сюда приходят с вопросами новички(те кто только учатся!) им нужны примеры и советы, а не полу умные замечания. Я задал вам конкретный вопрос! (Как написать в Label (текст) не горизонтально, а вертикально) даже код привел (рабочий) единственное что от вас требовалось, дать подсказку в примере(шрифт, цвет)
Знаете умничать может каждый, а вот обьяснить новичку, только спец, в итоге я делаю вывод что здесь половина собравшихся не только не спецы, но даже хуже не знающих.
Огромная прозба модератора закрыть эту тему
Я не волшебник, я только учусь)


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

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

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

    TopList