powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Печать текста на форме под углом
9 сообщений из 9, страница 1 из 1
Печать текста на форме под углом
    #32315716
GID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GID
Гость
Народ помогите
Как печатать текст на форме под углом?
Пробовал api функцию CreateFontIndirect английский алфавит выводит а вот русский нет, а очень надо русский.
Сенкс (за то что хоть прочитали вопрос).
...
Рейтинг: 0 / 0
Печать текста на форме под углом
    #32315818
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а внедрить wordart не пробовали ?
Есть еще спец. компоненты.
...
Рейтинг: 0 / 0
Печать текста на форме под углом
    #32315849
GID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GID
Гость
Неа не пробовал, т.к. не знаю как.
Если вам не трудно, скоординируйте направление моей деятельности.
Буду очень благодарен.
...
Рейтинг: 0 / 0
Печать текста на форме под углом
    #32315853
GID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GID
Гость
Нужна лишь маленькая подсказка, а дальше я сам соображу.
...
Рейтинг: 0 / 0
Печать текста на форме под углом
    #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
Печать текста на форме под углом
    #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
Печать текста на форме под углом
    #32317212
GID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GID
Гость
big-duke спасибо за пример
мне че-то в голову такое не пришло
да это и понятно я недавно начал программировать
а Вы я вижу продвинуты в этом деле
...
Рейтинг: 0 / 0
Печать текста на форме под углом
    #32317228
GID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GID
Гость
Antonariy тоже спасибо
но пример я этот знаю, его и использовал, а проблема вот в чем конкретно заключалась
в виндовозе ХР русским нормально выводит,
но когда запустил прогу в 2000-ом был неприятно удивлен,
ну как Вы понимаете заказчика убеждать в том что из-за моей проги надо ОС поменять это глуповато будет выглядеть, вот и кинулся в отчаянии на форум.
И все равно благодарю за то, что потратили свое время
...
Рейтинг: 0 / 0
Печать текста на форме под углом
    #32317336
GID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GID
Гость
Antonariy
оказывается вся фишка в font.lfFaceName = "Courier New CYR" & Chr$(0)
у меня этого не было
теперь в 2000-ом работает
еще раз спасибо великим программистам
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Печать текста на форме под углом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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