Как задать свои параметры RTF? - VB

Узнай цену своей работы

Формулировка задачи:

Подскажите пожалуйста как в RichTextBox задать текст в ртф формате по своему (с нуля, начиная с заголовка)? Дело в том, что я задаю текст в свойство TextRTF, но оно не задает заголовок и другие опции: Вот ртф, который я задаю:
Листинг программы
  1. {\rtf1
  2. Привет!
  3. \par
  4. {\i Это} некий
  5. отформатированный {\b текст}.\par
  6. }
А в итоге в RTB.TextRTF содержится такой текст:
Листинг программы
  1. {\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset204 MS Sans Serif;}}
  2. \viewkind4\uc1\pard\lang1049\f0\fs17\'cf\'f0\'e8\'e2\'e5\'f2!
  3. \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
  4. \'ed\'fb\'e9 \b\'f2\'e5\'ea\'f1\'f2\b0 .
  5. \par }

Решение задачи: «Как задать свои параметры RTF?»

textual
Листинг программы
  1. Option Explicit
  2.  
  3. Private Declare Sub InitCommonControls Lib "comctl32.dll" ()
  4. Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
  5. Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
  6. Private hLib As Long
  7.  
  8. Private Sub Command1_Click(Index As Integer)
  9.     With RichTextBox1
  10.         Select Case Index
  11.         Case 0
  12.             .SelBold = Not .SelBold
  13.         Case 1
  14.             .SelItalic = Not .SelItalic
  15.         Case 2
  16.             '
  17.            'Вставляем полученный RTF в буфер обмена после чего его можно присвоить константе rtf
  18.            'Заменяем служебный символ новой строки на свой символ "[vbCrLf]"
  19.            '
  20.            With Clipboard
  21.                 .Clear
  22.                 .SetText Replace(RichTextBox1.TextRTF, vbCrLf, "[vbCrLf]")
  23.             End With
  24.         End Select
  25.     End With
  26. End Sub
  27.  
  28. Private Sub Form_Load()
  29.     '
  30.    'Вставка кода RTF в поле RichTextBox1
  31.    '
  32.    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]"
  33.     RichTextBox1.TextRTF = Replace(rtf, "[vbCrLf]", vbCrLf)
  34. End Sub
  35.  
  36. Private Sub Form_Initialize()
  37.     hLib = LoadLibrary("shell32.dll")
  38.     InitCommonControls
  39. End Sub
  40.  
  41. Private Sub Form_Unload(Cancel As Integer)
  42.     FreeLibrary hLib
  43. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы