タイトルのとおりのようなことをしようと思うのですが、
Googleなんかで「EDITBOX 背景色変更」なんかを
検索しても出てきません。
誰か知っている方はお教えください。
EDITBOXの背景/文字色変更
http://www.activebasic.com/forum/viewtopic.php?t=815
http://www.activebasic.com/forum/viewtopic.php?t=823
http://www.activebasic.com/forum/viewtopic.php?t=1449
これら過去ログでは不十分でしょうか?
http://www.activebasic.com/forum/viewtopic.php?t=823
http://www.activebasic.com/forum/viewtopic.php?t=1449
これら過去ログでは不十分でしょうか?
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
Re: どちらかというと
konisiさん、tiroさん、返信ありがとうございます。
自分でもやってみたのですが、「背景色」でつまづきました。
背景色は「文字のあるところ」しかならないのですが...
以下は文字色変更部分のコードです
GDIとGUIを共同で使っていると、オブジェクトが消えたりするのですが
対処法をお知りの方はお教えください。
自分でもやってみたのですが、「背景色」でつまづきました。
背景色は「文字のあるところ」しかならないのですが...
以下は文字色変更部分のコードです
コード: 全て選択
SetBkColor(wParam,bkcol)
SetTextColor(wParam,fontcol)
対処法をお知りの方はお教えください。
Re:
こんにちは、
「SetBkColor」はテキスト背後だけの色に適用されます。
エディットボックス全体に適用するには「ブラシ」を作成し、ウィンドウプロシージャの戻り値に
このブラシハンドルを返すといいようです。
コードを載せておきますので参考にしてください。
「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