frostar@wiki
色を変える
最終更新:
frostar
-
view
コントロールの背景色、文字色、文字背景色を変更する方法。
基本的には親のウィンドウプロシージャでWM_CTLCOLOR系のメッセージを取得し、色を変更する。
処理するコントロールのIDをID_CONTROLとすると、
基本的には親のウィンドウプロシージャでWM_CTLCOLOR系のメッセージを取得し、色を変更する。
処理するコントロールのIDをID_CONTROLとすると、
DWORD id = GetWindowLong((HWND)lp,GWL_ID); if(id == ID_CONTROL){ SetBkColor((HDC)wp, RGB(255, 255, 255));//文字の背景色 SetTextColor((HDC)wp, RGB(255, 255, 255));//文字色 return (LRESULT)GetStockObject(WHITE_BRUSH);//背景色 }
を各メッセージ内で処理することで色が変更される。
メッセージとそれに対応するコントロールの種類は以下の通り。
メッセージとそれに対応するコントロールの種類は以下の通り。
- WM_CTLCOLOREDIT
- エディットコントロール
- WM_CTLCOLORLISTBOX
- リストボックス
- WM_CTLCOLORBTN
- ボタン
- WM_CTLCOLORDLG
- ダイアログ
- WM_CTLCOLORSTATIC
- スタティックコントロール(ReadOnlyなエディットコントロールもこっちで処理する)
WM_CTLCOLORMSGBOXとWM_CTLCOLORSCROLLBARというメッセージもあるが、色の変更を試してみてもうまくいかないようです。