Как задать свои параметры RTF? - VB
Формулировка задачи:
Подскажите пожалуйста как в RichTextBox задать текст в ртф формате по своему (с нуля, начиная с заголовка)?
Дело в том, что я задаю текст в свойство TextRTF, но оно не задает заголовок и другие опции:
Вот ртф, который я задаю:
А в итоге в RTB.TextRTF содержится такой текст:
Листинг программы
- {\rtf1
- Привет!
- \par
- {\i Это} некий
- отформатированный {\b текст}.\par
- }
Листинг программы
- {\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset204 MS Sans Serif;}}
- \viewkind4\uc1\pard\lang1049\f0\fs17\'cf\'f0\'e8\'e2\'e5\'f2!
- \par \i\'dd\'f2\'ee\i0 \'ed\'e5\'ea\'e8\'e9 \'ee\'f2\'f4\'ee\'f0\'ec\'e0\'f2\'e8\'f0\'ee\'e2\'e0\'ed
- \'ed\'fb\'e9 \b\'f2\'e5\'ea\'f1\'f2\b0 .
- \par }
Решение задачи: «Как задать свои параметры RTF?»
textual
Листинг программы
- Option Explicit
- Private Declare Sub InitCommonControls Lib "comctl32.dll" ()
- Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
- Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
- Private hLib As Long
- Private Sub Command1_Click(Index As Integer)
- With RichTextBox1
- Select Case Index
- Case 0
- .SelBold = Not .SelBold
- Case 1
- .SelItalic = Not .SelItalic
- Case 2
- '
- 'Вставляем полученный RTF в буфер обмена после чего его можно присвоить константе rtf
- 'Заменяем служебный символ новой строки на свой символ "[vbCrLf]"
- '
- With Clipboard
- .Clear
- .SetText Replace(RichTextBox1.TextRTF, vbCrLf, "[vbCrLf]")
- End With
- End Select
- End With
- End Sub
- Private Sub Form_Load()
- '
- 'Вставка кода RTF в поле RichTextBox1
- '
- Const rtf = "{\rtf1\ansi\ansicpg1251\deff0\deflang1049{\fonttbl{\f0\fswiss\fcharset204{\*\fname Arial;}Arial CYR;}{\f1\fswiss\fcharset0 Arial;}{\f2\fnil\fcharset204 MS Sans Serif;}}[vbCrLf]{\*\generator Msftedit 5.41.15.1517;}\viewkind4\uc1\pard\b\f0\fs17\'ca\'ee\'ef\'e8\'f0\'f3\'e5\'ec \b0\i\'ef\'ee\'eb\'f3\'f7\'e5\'ed\'ed\'fb\'e9 \lang1033\b\f1 RTF\lang1049\b0\i0\f2\par[vbCrLf]}[vbCrLf]"
- RichTextBox1.TextRTF = Replace(rtf, "[vbCrLf]", vbCrLf)
- End Sub
- Private Sub Form_Initialize()
- hLib = LoadLibrary("shell32.dll")
- InitCommonControls
- End Sub
- Private Sub Form_Unload(Cancel As Integer)
- FreeLibrary hLib
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д