Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Печать текста на форме под углом / 9 сообщений из 9, страница 1 из 1
05.11.2003, 10:34
    #32315716
GID
GID
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Печать текста на форме под углом
Народ помогите
Как печатать текст на форме под углом?
Пробовал api функцию CreateFontIndirect английский алфавит выводит а вот русский нет, а очень надо русский.
Сенкс (за то что хоть прочитали вопрос).
...
Рейтинг: 0 / 0
05.11.2003, 11:22
    #32315818
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Печать текста на форме под углом
а внедрить wordart не пробовали ?
Есть еще спец. компоненты.
...
Рейтинг: 0 / 0
05.11.2003, 11:34
    #32315849
GID
GID
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Печать текста на форме под углом
Неа не пробовал, т.к. не знаю как.
Если вам не трудно, скоординируйте направление моей деятельности.
Буду очень благодарен.
...
Рейтинг: 0 / 0
05.11.2003, 11:36
    #32315853
GID
GID
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Печать текста на форме под углом
Нужна лишь маленькая подсказка, а дальше я сам соображу.
...
Рейтинг: 0 / 0
05.11.2003, 12:29
    #32315948
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Печать текста на форме под углом
reference на Microsoft Word xx Object Library
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Dim W As Word.Application
Set W = New Application
With W
    .Documents.Add
' вот сюда код из макрорекордера
' -------------------------------------
 
.ActiveDocument.Shapes.AddTextEffect(msoTextEffect13,  "210 ; 229 ; 234 ; 241 ; 242 ;  237 ; 224 ; 228 ; 239 ; 232 ; 241 ; 232 ;", _
         "Impact" ,  36 #, msoFalse, msoFalse,  181 . 85 ,  186 #).Select
    .Selection.ShapeRange.IncrementRotation  29 . 53 
    .Selection.Copy
' -------------------------------------
 
    Picture1.Picture = Clipboard.GetData( 3 )
End With
W.Quit False

Set W = Nothing

Если надо что-то изменить то записываешь в макрорекордере word а потом вставляешь в код где WITH.
...
Рейтинг: 0 / 0
05.11.2003, 16:22
    #32316384
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Печать текста на форме под углом
По-русски не печатает скорее всего из-за того, что шрифт не тот.
Вот пример с апишками, все прекрасно работает.

На форму кидаешь кнопку Command2, Timer1 с интервалом 10 и пикчербокс Picture1.

Declare Function CreateFontIndirect Lib "gdi32" Alias "CreateFontIndirectA" (lpLogFont As LOGFONT) As Long
Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Const LF_FACESIZE = 32
Declare Function CreateCaret Lib "user32" (ByVal hwnd As Long, ByVal hBitmap As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
Declare Function SetCaretPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
Declare Function ShowCaret Lib "user32" (ByVal hwnd As Long) As Long

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 As String * LF_FACESIZE
End Type

Dim I As Integer

Private Sub Timer1_Timer()
Dim font As LOGFONT
Dim prevFont As Long, hFont As Long, ret As Long

I = I + 10
If I >= 1800 * 2 Then I = 0

Const FONTSIZE = 10
Picture1.Cls
font.lfEscapement = I
font.lfFaceName = "Courier New CYR" & Chr$(0)

font.lfHeight = (FONTSIZE * -20) / Screen.TwipsPerPixelY
hFont = CreateFontIndirect(font)
prevFont = SelectObject(Picture1.hdc, hFont)
Picture1.CurrentX = Picture1.Left + Picture1.Width / 2
Picture1.CurrentY = Picture1.ScaleHeight / 2
Picture1.Print "Текст"
End Sub
...
Рейтинг: 0 / 0
06.11.2003, 13:15
    #32317212
GID
GID
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Печать текста на форме под углом
big-duke спасибо за пример
мне че-то в голову такое не пришло
да это и понятно я недавно начал программировать
а Вы я вижу продвинуты в этом деле
...
Рейтинг: 0 / 0
06.11.2003, 13:24
    #32317228
GID
GID
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Печать текста на форме под углом
Antonariy тоже спасибо
но пример я этот знаю, его и использовал, а проблема вот в чем конкретно заключалась
в виндовозе ХР русским нормально выводит,
но когда запустил прогу в 2000-ом был неприятно удивлен,
ну как Вы понимаете заказчика убеждать в том что из-за моей проги надо ОС поменять это глуповато будет выглядеть, вот и кинулся в отчаянии на форум.
И все равно благодарю за то, что потратили свое время
...
Рейтинг: 0 / 0
06.11.2003, 14:09
    #32317336
GID
GID
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Печать текста на форме под углом
Antonariy
оказывается вся фишка в font.lfFaceName = "Courier New CYR" & Chr$(0)
у меня этого не было
теперь в 2000-ом работает
еще раз спасибо великим программистам
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Печать текста на форме под углом / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]