EDITBOXの背景/文字色変更

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: EDITBOXの背景/文字色変更

Re:

by MML » 2007年3月26日(月) 11:38

M.K.さん、ありがとうございます!
今から試してみます!!

Re:

by M.K » 2007年3月26日(月) 11:35

こんにちは、

「SetBkColor」はテキスト背後だけの色に適用されます。

エディットボックス全体に適用するには「ブラシ」を作成し、ウィンドウプロシージャの戻り値に
このブラシハンドルを返すといいようです。
コードを載せておきますので参考にしてください。

コード: 全て選択



'グローバル領域
Dim Edit1_BC As HBRUSH

'Createイベント

Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT)

     'Edit1の背景用ブラシ(黄色にする)
      Edit1_BC = CreateSolidBrush(RGB(255,255,0))

End Sub

’Destroyイベント

Sub MainWnd_Destroy()
	'この1行を追加
	DeleteObject(Edit1_BC)

	FastApp_DestroyObjects()
	PostQuitMessage(0)

End Sub

’ウィンドウプロシージャ
Function MainWndProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As DWord
' TODO: この位置にウィンドウメッセージを処理するためのコードを記述します。

    Select Case dwMsg

        Case WM_CTLCOLOREDIT 

            Select Case lParam

                Case GetDlgItem(hWnd,EditBox1)

                    '文字背後は「透明」にしておく
                    SetBkMode(wParam,TRANSPARENT) 
                    '文字色は青色 
                   SetTextColor(wParam,RGB(0,0,255))

                    'ブラシハンドルを返す
                    MainWndProc = Edit1_BC
                    Exit Function

            End Select

     End Select

    ' イベントプロシージャの呼び出しを行います。
    MainWndProc=EventCall_MainWnd(hWnd,dwMsg,wParam,lParam)

End Function

Re: どちらかというと

by MML » 2007年3月26日(月) 10:45

konisiさん、tiroさん、返信ありがとうございます。

自分でもやってみたのですが、「背景色」でつまづきました。
背景色は「文字のあるところ」しかならないのですが...

以下は文字色変更部分のコードです

コード: 全て選択

SetBkColor(wParam,bkcol)
SetTextColor(wParam,fontcol)
GDIとGUIを共同で使っていると、オブジェクトが消えたりするのですが
対処法をお知りの方はお教えください。

どちらかというと

by trio » 2007年3月21日(水) 19:04

こっちのケースの方が参考になりそうです
おそらく

http://www.activebasic.com/forum/viewtopic.php?t=1006

by konisi » 2007年3月21日(水) 12:44

EDITBOXの背景/文字色変更

by MML » 2007年3月21日(水) 11:35

タイトルのとおりのようなことをしようと思うのですが、
Googleなんかで「EDITBOX 背景色変更」なんかを
検索しても出てきません。
誰か知っている方はお教えください。

ページトップ