Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/65: Рейтинг темы: голосов - 65, средняя оценка - 4.68
Гость

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

19.01.2008, 12:16. Показов 12349. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Очень нужно!!!
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.01.2008, 12:16
Ответы с готовыми решениями:

Как расположить текст вертикально по центру к <label>?
Есть стилизованный переключатель, мне нужно отцентровать текст по вертикали, кто подскажет как это провернуть? &lt;div...

Как повернуть и написать вертикально текст?
Здравствуйте. Мне нужно написать на канве формы текст. Форма выкрашена в желтый цвет и на ней уже нарисованы 3 окружности. Осталось...

Как сделать в DataGridView чтобы заголовки колонок шли и горизонтально и вертикально
Подскажите как также сделать?

19
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
19.01.2008, 20:28
Встроенными средствами это сделать невозможно. Придется использовать API функции рисования (см. структуру LOGFONT)

Вот рабочий пример. Весь код скопировать в код формы:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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
0
118 / 118 / 10
Регистрация: 12.05.2010
Сообщений: 1,207
11.06.2008, 00:18
А то же самое для случая элемента управления "Поле" в форме MS Access?
0
0 / 0 / 0
Регистрация: 17.08.2012
Сообщений: 9
17.08.2012, 09:43
Добрый день!
Может эта тема давно забыта, но мне пришлось воспользоваться этим кодом для поворота Label(верней получилось что использую PictureBox)
Но когда пользуюсь PrintForm не выводить на печать это Me.Print ":-)" т.е. тот PictureBox в который я запихнул ":-)"
Помогите пожалуйста!!! Как вывести на печать форму с данными PictureBox
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
17.08.2012, 09:57
Цитата Сообщение от Vovan-VE Посмотреть сообщение
Встроенными средствами это сделать невозможно.
Я дико извиняюсь, а что мешает просто создать Label вертикально и там написать слова по буквам?
Примерно так это выглядит:
Миниатюры
Как написать в Label (текст) не горизонтально, а вертикально  
1
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
17.08.2012, 10:09
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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
End Type
Private Sub Form_Load()
    Dim RotateMe As LOGFONT, Deg As Integer, Size As Integer, rFont As Long, Curent
    Me.Picture1.AutoRedraw = True
    Deg = 290 : Size = 20
    RotateMe.lfEscapement = Deg * 10
    RotateMe.lfHeight = (Size * -20) / Screen.TwipsPerPixelY
    Curent = SelectObject(Me.Picture1.hdc, CreateFontIndirect(RotateMe))
    Me.Picture1.CurrentX = 500: Me.Picture1.CurrentY = 200
    Picture1.Print ":-)"
End Sub
2
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
17.08.2012, 10:22
Вот так получается:
0
0 / 0 / 0
Регистрация: 17.08.2012
Сообщений: 9
17.08.2012, 10:45
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Я дико извиняюсь, а что мешает просто создать Label вертикально и там написать слова по буквам?
Примерно так это выглядит:
Мне надо чтоб и Буквы были под углом на 90 градусов
Название: Diam168.jpg
Просмотров: 1101

Размер: 2.4 Кб
Значения 166 и 178 меняются
А на печати так получается(((
Название: diam168 ne pech.jpg
Просмотров: 1112

Размер: 2.7 Кб
0
0 / 0 / 0
Регистрация: 17.08.2012
Сообщений: 9
17.08.2012, 10:48
Цитата Сообщение от SoftIce Посмотреть сообщение
Вот так получается:
Вложение 176560
А печатается это через PrintForm ????
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
17.08.2012, 11:03
Цитата Сообщение от Sem2044 Посмотреть сообщение
А печатается это
Эта тема не подойдет?
0
0 / 0 / 0
Регистрация: 17.08.2012
Сообщений: 9
17.08.2012, 11:25
Цитата Сообщение от SoftIce Посмотреть сообщение
Вот так получается:
Вложение 176560
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Дело в том что, я значения получаю, а потом с помощью кода LOGFONT отображаю в программе, это уже получается picturebox, а потом уже его (Picturebox а не текст) надо напечатать...
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
17.08.2012, 11:33
А так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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 Type LOGFONT
    lfHeight As Long
    lfWidth As Long
    lfEscapement As Long
End Type
Private Sub Form_Load()
    Dim RotateMe As LOGFONT
    Me.Picture1.AutoRedraw = True: Me.Picture2.AutoRedraw = True
    RotateMe.lfEscapement = 2700: RotateMe.lfHeight = -20 ': RotateMe.lfWidth = 10
    SelectObject Me.Picture1.hdc, CreateFontIndirect(RotateMe)
    SelectObject Me.Picture2.hdc, CreateFontIndirect(RotateMe)
    Me.Picture1.CurrentX = 300: Me.Picture1.CurrentY = Me.Picture1.Height - 700
    Me.Picture2.CurrentX = 300: Me.Picture2.CurrentY = Me.Picture2.Height - 700
    Picture1.Print "178"
    Picture2.Print "166"
End Sub
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
17.08.2012, 11:46
Или так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Option Explicit
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 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(32) As Byte
End Type
Private Sub Printing(text1 As String, text2 As String)
    Dim RotateMe As LOGFONT
    Me.Picture1.AutoRedraw = True: Me.Picture2.AutoRedraw = True
    RotateMe.lfEscapement = 2700: RotateMe.lfHeight = -20
    SelectObject Me.Picture1.hdc, CreateFontIndirect(RotateMe)
    SelectObject Me.Picture2.hdc, CreateFontIndirect(RotateMe)
    Me.Picture1.CurrentX = 300: Me.Picture1.CurrentY = Me.Picture1.Height - 700
    Me.Picture2.CurrentX = 300: Me.Picture2.CurrentY = Me.Picture2.Height - 700
    Picture1.Print text1
    Picture2.Print text2
End Sub
 
Private Sub Command1_Click()
    Printing 166, 178
End Sub
1
0 / 0 / 0
Регистрация: 17.08.2012
Сообщений: 9
17.08.2012, 16:06
Спасибо за еще вариант, в принципе я реализовал в том же духе, но не выводит значения вывести на принтер, использую команду Printform
Не знаю как сделать так чтоб они видны были при печати(((( Помогите!!!
Может другими методами печатать?? Какими???
0
0 / 0 / 0
Регистрация: 17.08.2012
Сообщений: 9
20.08.2012, 11:48
Вот подумываю как-то вывести на печать через Print Screen, вот нашел тему Вывести на печать содержимое формыно не могу разобраться в коде, все красным высвечивает.
Кто может подсказать простой код чтоб сделать принт скрин формы и сразу его напечатать???
0
Заблокирован
20.08.2012, 16:37
Красным из-за того, что там другая версия VB! Конкретно .NET.
0
0 / 0 / 0
Регистрация: 17.08.2012
Сообщений: 9
20.08.2012, 17:29
Цитата Сообщение от inv.DS Посмотреть сообщение
Красным из-за того, что там другая версия VB! Конкретно .NET.
Спасибо, понял.
0
0 / 0 / 0
Регистрация: 17.08.2012
Сообщений: 9
22.08.2012, 17:49
Неужели никто не может помочь, как этот повернутый текст вывести на печать???
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
22.08.2012, 20:21
Sem2044, проверил на принтере, печатает!
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Option Explicit
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 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(32) As Byte
End Type
Private Sub Printing(text1 As String, text2 As String)
    Dim RotateMe As LOGFONT
    Me.Picture1.AutoRedraw = True: Me.Picture2.AutoRedraw = True
    RotateMe.lfEscapement = 2700: RotateMe.lfHeight = -20
    SelectObject Me.Picture1.hdc, CreateFontIndirect(RotateMe)
    SelectObject Me.Picture2.hdc, CreateFontIndirect(RotateMe)
    Me.Picture1.CurrentX = 300: Me.Picture1.CurrentY = Me.Picture1.Height - 700
    Me.Picture2.CurrentX = 300: Me.Picture2.CurrentY = Me.Picture2.Height - 700
    Picture1.Print text1
    Picture2.Print text2
End Sub
 
Private Sub Command1_Click()
    Printing 166, 178
    Picture1.Picture = Picture1.Image: Picture2.Picture = Picture2.Image
    PrintForm
End Sub
Вложения
Тип файла: rar PrintForm.rar (1.5 Кб, 20 просмотров)
1
0 / 0 / 0
Регистрация: 17.08.2012
Сообщений: 9
25.08.2012, 09:43
Цитата Сообщение от SoftIce Посмотреть сообщение
Sem2044, проверил на принтере, печатает!
Спасибо Большое за этот код Picture1.Picture = Picture1.Image:!
Все работает, единственное что потом искал как стереть image, а то накладывается, сделал так
Visual Basic
1
2
3
If Not (Picture1.Image Is Nothing) Then
    Picture1.Picture = LoadPicture("")
End If
Еще раз БОЛЬШОЕ СПАСИБО!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.08.2012, 09:43
Помогаю со студенческими работами здесь

Как вывести данные из базы данных, не вертикально, а горизонтально, чтобы колонки были сверху ( как столбцы)
Как вывести данные из базы данных, не вертикально, а горизонтально, чтобы колонки были сверху ( как столбцы) , а значения были ниже на...

Печать страницы горизонтально, а не вертикально
Всем привет.Столкнулся с неясностью- как в билдере распечатать альбомную страницу. ( т.е. мне нужно не вертикально что бы она печаталась а...

Определить ориентацию телефона (вертикально/горизонтально)
Как узнать? Вопрос простой- Ваш телефон сейчас в вертикальном положении Ваш телефон сейчас в горизонтальном положении

Нужно написать текст вертикально.
Привет всем. у меня такая задача. нужно написать текст вертикально. Я знаю метод написания фразы вертикально, но оно выводиться с...

В IE картинки-ссылки отображаются вертикально (нужно горизонтально)
Добрый день! На странице есть элемент fieldset, внутри которого размещено несколько картинок-ссылок. Картинки должны отображаться по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru