- 日時: 2007/09/14 22:19
- 名前: 花ちゃん
- ***********************************************************************************
* カテゴリー:[リッチテキストボックス][][] * * キーワード:テキスト,背景色,バックカラー,,, * ***********************************************************************************
元質問:テキストの背景色の変更方法について - Road 2007/03/28-00:42 No.8747
リッチテキストボックスにおいて、任意のテキストの文字色を変更するにはSelColorプロパティ を使えばいいということは分かるのですが、任意のテキストの背景色を変更する方法が分かりません。
----------------------------------------------------------------------------------- Re: テキストの背景色の変更方法について - 花ちゃん 2007/03/28-10:28 No.8749 ----------------------------------------------------------------------------------- Win32 API 関数を使って、CHARFORMAT2 構造体 で指定すればできます。 具体的なコードは、WEBで[CHARFORMAT2]で検索して調べて見て下さい。
----------------------------------------------------------------------------- Re^2: テキストの背景色の変更方法について - Road 2007/03/28-16:03 No.8753 -----------------------------------------------------------------------------
お返事ありがとうございます。 以下のようなプログラムで、無事に動作させることができました。
関数の宣言等:
Public Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" ( _ ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Type CHARFORMAT2 cbSize As Integer wPad1 As Integer dwMask As Long dwEffects As Long yHeight As Long yOffset As Long crTextColor As Long bCharSet As Byte bPitchAndFamily As Byte szFaceName As String * 32 wPad2 As Integer wWeight As Integer sSpacing As Integer crBackColor As Long lcid As Long dwReserved As Long sStyle As Integer wKerning As Integer bUnderlineType As Byte bAnimation As Byte bRevAuthor As Byte bReserved1 As Byte End Type
Public Const EM_GETCHARFORMAT = &H43A Public Const EM_SETCHARFORMAT = &H444 Public Const SCF_SELECTION = &H1 Public Const CFM_BACKCOLOR = &H4000000
マウスでテキストを選択した時、選択範囲のテキストの背景色を赤色にするプログラム:
Private Sub RichTextBox1_MouseUp(Button As Integer, _ Shift As Integer, x As Single, y As Single)
Dim cf2 As CHARFORMAT2 cf2.cbSize = Len(cf2) SendMessage RichTextBox1.hWnd, EM_GETCHARFORMAT, SCF_SELECTION, cf2 cf2.dwMask = CFM_BACKCOLOR cf2.dwEffects = 0 cf2.crBackColor = RGB(255, 0, 0) SendMessage RichTextBox1.hWnd, EM_SETCHARFORMAT, SCF_SELECTION, cf2
End Sub
|