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
こんにちは、
「SetBkColor」はテキスト背後だけの色に適用されます。
エディットボックス全体に適用するには「ブラシ」を作成し、ウィンドウプロシージャの戻り値に
このブラシハンドルを返すといいようです。
コードを載せておきますので参考にしてください。
[code]
'グローバル領域
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
[/code]