○ダイアログとコントロールの背景色の変更
ダイアログ以外の通常のウインドウでもコントロールの背景色を変更できます。
buttonはオーナー描画でしか色がかえられません。
■ダイアログプロシージャに以下のWM_CTLCOLOR???を追加する
HBRUSH bkColorBrush=CreateSolidBrush(RGB(200,255,255));//背景色のブラシを用意する
//ダイアログプロシージャー
BOOL CALLBACK DlgProc(HWND hDlg,UINT msg,WPARAM wp,LPARAM lp){
switch (msg){
case WM_CTLCOLORDLG://ダイアログの背景色
return (LRESULT)bkColorBrush;
break;
case WM_CTLCOLORSTATIC://static Radio Check の背景色
//lpに各コントロールのハンドルが入ってきます。
//lpを見て各々のコントロールの色を変えられます
SetBkMode(((HDC)wp),TRANSPARENT);
SetTextColor (((HDC)wp),RGB(200,0,0));//文字の色
return (LRESULT)bkColorBrush;
break;
case WM_CTLCOLOREDIT://Edit の背景色
//lpに各コントロールのハンドルが入ってきます。
//lpを見て各々のコントロールの色を変えられます
SetBkMode(((HDC)wp),TRANSPARENT);
SetTextColor (((HDC)wp),RGB(200,0,0));//文字の色
return (LRESULT)bkColorBrush;
break;
▼色(ブラシ)を動的に変更した時は以下を呼び出して再描画する。
InvalidateRect(hDlg, NULL,1);
UpdateWindow(hDlg);
▲トップページ
>
Windows と C++