ES_READONLYとWM_CTLCOLOREDIT

dia
ES_READONLYのEDITダイアログを作成すると背景色が灰色になってしまうのですが、変える方法が有りました。


この背景はWM_CTLCOLORSTATICに返って来るらしく、
メッセージループ内で

HBRUSH bkb;

switch( message )
{
        case WM_INITDIALOG:
            bkb=CreateSolidBrush(色);
            break;
        case WM_CTLCOLORSTATIC:
            SetBkColor((HDC)wParam,色);
            return (LRESULT)bkb;
        case WM_CLOSE:
            DeleteObject(bkb);
            break;
}

の様にしてやれば色が変更できます。
通常のEDITBOXの背景はWM_CTLCOLOREDIT内で変更します。

関連サイト:
WM_CTLCOLOREDIT Notification ()
WM_CTLCOLORSTATIC Notification ()
SetBkColor Function (Windows)

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です