VB6です。
とあるHPにあったプログラムを元に下記のプログラムを組んでみました。
ようはRTFのカラーテーブル部分を直接書き加えたい!っていうプログラムです。
RichTextBox2は、RTFを見るためのものです。
Private Sub Command1_Click()
ss = RichTextBox1.TextRTF
fp = InStr(1, ss, ";}}")
ss = StrIns(ss, fp + 3, "{\colortbl\red0\green0\blue0;\red0\green0\blue255;\red0\green192\blue0;}")
RichTextBox1.TextRTF = ss
RichTextBox1.SelStart = 0
RichTextBox1.SelLength = 0
RichTextBox2.Text = RichTextBox1.TextRTF
End Sub
----------------------------------------------------------------------
Private Function StrIns(ss As String, pos As Long, Ssin As String)
StrIns = Left(ss, pos - 1) & Ssin & Mid(ss, pos)
End Function
しかしなぜかRTFにカラーテーブルを書き加えることができません。
なぜでしょう?
テキストを2つ並べて比べながら、RTFを作るコツは
RichTextBox1.SelStart = 1
RichTextBox1.SelLength = 2
RichTextBox1.SelColor = RGB(255, 0, 0)
などとやって出来るTextRTFのコードと
同じコードをいかに作成するか考えることです。
烏さんのコードはカラーテーブルだけ作って実際変えたい
文字の指定がありません。
こういうコードはRichiTextBox先生は決して作りません。
RichiTextBoxが作り出すコードをみて
「何も足さない、何も引かない」これがコツです。
ツイート | ![]() |