tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
テキストの背景色の変更方法について(VB6.0) ( No.0 )  [親スレッドへ]
日時: 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




 [スレッド一覧へ] [親スレッドへ]