Текст вертикально

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

Текст вертикально

Сообщение Matew » 28.04.2005 (Чт) 9:10

Возможно или даже скорее всего я тупой :D , но я не нашел не по форуму, не в апи-гайде, функцию, которая выводит вертикально текст. Подскажите дебилу. :)

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 28.04.2005 (Чт) 9:40

Не форумом единым... Использовался Гугл по ключевым словам:
Код: Выделить всё
draw "vertical text" visual basic 6


Первая ссылка...

Код: Выделить всё

Private Declare Function CreateFont Lib "gdi32" Alias "CreateFontA" (ByVal H As Long, ByVal W As Long, ByVal E As Long, ByVal O As Long, ByVal W As Long, ByVal I As Long, ByVal U As Long, ByVal S As Long, ByVal C As Long, ByVal OP As Long, ByVal CP As Long, ByVal Q As Long, ByVal PAF As Long, ByVal F As String) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long

Const ANSI_CHARSET As Long = 0
Const FF_DONTCARE As Long = 0
Const CLIP_LH_ANGLES As Long = &H10
Const CLIP_DEFAULT_PRECIS As Long = 0
Const OUT_TT_ONLY_PRECIS As Long = 7
Const PROOF_QUALITY As Long = 2
Const TRUETYPE_FONTTYPE As Long = &H4
Const p_WIDTH As Long = 12
Const p_HEIGHT As Long = 12

Private Sub RotateText(TheText As String, TheAngle As Long)
    Dim NewFont As Long
    Dim OldFont As Long
    NewFont = CreateFont(p_HEIGHT, p_WIDTH, TheAngle, 0, FF_DONTCARE, 0, 0, 0, ANSI_CHARSET, OUT_TT_ONLY_PRECIS, CLIP_LH_ANGLES Or CLIP_DEFAULT_PRECIS, PROOF_QUALITY, TRUETYPE_FONTTYPE, "Arial")
    OldFont = SelectObject(Me.hdc, NewFont)

    Print TheText

    NewFont = SelectObject(Me.hdc, OldFont)
    DeleteObject NewFont
End Sub

Private Sub Form_Load()
    Dim TheAngle As Long
    Me.Show
    CurrentX = 300
    CurrentY = 150
    TheAngle = -900
    RotateText "This is a test", TheAngle 'angle in tenths of a degree  'PUT YOUR TEXT HERE
End Sub
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 29.04.2005 (Пт) 8:57

2 FAKK2 прочитал это:
"Учимся спрашивать"- посмелся над своим вопросом :D
Буду искать терь и на Google, спасибо!

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 29.04.2005 (Пт) 9:09

Matew
Я очень рад, что ты понял, что я пытаюсь донести! :)
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

asmuk
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 05.05.2005 (Чт) 4:13
Откуда: Саянск

Сообщение asmuk » 05.05.2005 (Чт) 4:21

Пусть не совсем по теме, но я не знаю куда выставить свой вопрос ("Чайник").

Как мне вывести текст курсивом?
Имеется код:

Set oTextBox = oSketch.TextBoxes.AddFitted(oTG.CreatePoint2d(1.05, 10.25), _
"<StyleOverride FontSize='" + FormatNumber$(0.25) + "'>Инв. N дубл.</StyleOverride>")
oTextBox.Rotation = pi / 2
oTextBox.HorizontalJustification = kAlignTextCenter
oTextBox.VerticalJustification = kAlignTextMiddle

Выводится текст "Инв. N дубл.", затем поворачивается на 90 град. и отцентровывается. А как сделать, чтобы он выводился курсивом, а потом уже поворачивался??

Код - составляющая часть макроса, который используется в системе трехмерного проектирования Autodesk Inventor. Макрос прредназначен для вывода границ рамки, полей и внесения текста. Текст выводится прямым, а по ГОСТу должен быть по наклоном в 15 град. Поэтому и нужно, чтобы текст выводился курсивом. Пробовал внести изменения как в Excel - не получается, Italic он не видит, либо я не знаю как его вставлять.
Кусок приведенного кода многократно применяется в макросе, выводится различный текст.

HELP!! :idea:

FaKk2
El rebelde gur&#250;
El rebelde gur&#250;
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 05.05.2005 (Чт) 5:50

asmuk

Сначала сходи по ссылке в моей подписи для профилактики. Затем поищи по форуму. Если не найдешь, создай новую тему В ПРАВИЛЬНОМ ФОРУМЕ. Главное не торопись, вдумайся в каждое действие.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

neic
Жираф
Жираф
 
Сообщения: 492
Зарегистрирован: 13.02.2005 (Вс) 23:44
Откуда: Сланцы

Сообщение neic » 05.05.2005 (Чт) 12:30

asmuk
oTextBox.FontItalic = True

FAKK2 ну не налетай на новеньких хоть =)[/b]

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 05.05.2005 (Чт) 13:20

asmuk в .NET его

asmuk
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 05.05.2005 (Чт) 4:13
Откуда: Саянск

Сообщение asmuk » 06.05.2005 (Пт) 2:59

neic - спасибо, но это не подходит
нужно ввести следующее в строчку кода:


<StyleOverride FontSize='0.25' Italic='True'>Инв.N подл.</StyleOverride>

FAKK2 звездочек много, а ответ пустой - неужели думаешь, что я по форуму не искал (да и не только на этом), а обратился уже от безисходности. Почаще так отвечай, может кого-то и зацепишь, но не меня :)))))

FaKk2
El rebelde gur&#250;
El rebelde gur&#250;
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 06.05.2005 (Пт) 3:53

asmuk
Когда ты подрастешь, ты поймешь, сколько мудрости в моем ответе.

А щас тебе обьяснять бесполезно. Ты ведь нашел вопрос на свой ответ или нет?
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

FaKk2
El rebelde gur&#250;
El rebelde gur&#250;
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 06.05.2005 (Пт) 3:54

neic

Это я налетел?
Если бы я ему сказал RTFM, STFW, и еще много других приятных слов, как бы ты это назвал?
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

asmuk
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 05.05.2005 (Чт) 4:13
Откуда: Саянск

Сообщение asmuk » 06.05.2005 (Пт) 4:22

FAKK2 предо мной стоит твой лик - сединою виски покрыты, налево и направо старец советы раздает, мудростью делится...:)
Спору нет, когда в ВБ разбираться как ас начну, тогда этот совет может чем то стоящим и покажется, а пока мне хватает Delphi и PHP, чтобы понять, что перед новичком в новом деле легче перья рапушить.
Можешь называть мне много разных слов, если тебе легче от этого будет - то пожалуйста. Для чего раскидываться словами - помог бы делом, совет бы конкретный дал по коду - вот за эту прямоту людей и уважают... А так...

Один повидавший жизнь человек мне сказал: "Будь проще и люди к тебе потянутся"..

FaKk2
El rebelde gur&#250;
El rebelde gur&#250;
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 06.05.2005 (Пт) 4:28

asmuk

Trust me, люди ко мне тянуться и даже чересчур.

У тебя проблема, не с тем что ты VB не знаешь, а с высоким самомнением. Поверь, я тебе указал на поиск, не потому, что жутко умный, а потому что, вопрос твой явно указывает на то, что ты не читал, ни MSDN, ни толком искал в сети. Я ведь прав?
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

asmuk
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 05.05.2005 (Чт) 4:13
Откуда: Саянск

Сообщение asmuk » 06.05.2005 (Пт) 4:39

Знаешь, у кого из нас самомнение выше - можно спорить и спорить, забивая флудом форум, не для этого он создан.
Насчет поиска - еще раз повторюсь, что я искал, и знаю правила многих форумов. Просто это наболевший вопрос (см.код), и где спросить - я уже не знал (пересмотрев ту литературу, что есть у нас на предприятии и расспросив кучу знакомых программистов). Поэтому и вопрос выложил от безисходности. А задавать новую ветку в форуме - зачем? Простецкий вопрос - хотел получить небольшую консультацию, чтобы был четкий ответ и ничего более. И уж тем более не хотел, чтобы меня опять посылали рыскать бездонные просторы Рунета и форумов.

FaKk2
El rebelde gur&#250;
El rebelde gur&#250;
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 06.05.2005 (Пт) 4:41

asmuk

Молодец! Вот только откуда я знал, что ты искал? Ты же не написал на форуме! Ведь тогда к тебе претензий не было бы! Ты искал, другой вопрос, что не нашел, но за тем и пришел на форум.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

asmuk
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 05.05.2005 (Чт) 4:13
Откуда: Саянск

Сообщение asmuk » 06.05.2005 (Пт) 4:44

:wink:


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 68

    TopList