Edit Control の色を設定

Dialog Box に貼り付けた Edit Control の「背景色, 文字色, 文字背景」を設定します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

  1. 新規プロジェクトで [空のプロジェクト] (EditColor) を作成します。
  2. [プロジェクト] [リソースの追加] [Dialog] [新規作成] で DialogBoxを作成します。
    DialogBox 全体に Edit Control を配置して下さい。
  3. WinMain() では DialogBox を表示するだけです。
  4. WM_INITDIALOG で Edit Control のウインドウを塗りつぶすブラシを作成します。
        HBRUSH      g_BkColor;          //ウインドウの色
    
        g_BkColor= CreateSolidBrush(RGB(150,170,192));
        
  5. Edit Control に TEXT を表示する直前に WM_CTLCOLOREDIT: がポストされてきます。
    このとき「背景色, 文字色, 文字背景」を設定することができます。
    wp を HDC でキャストして HDC を取得します。
    HDC が取得できれば文字色と文字背景の設定は簡単です。
    詳細は 文字に色を付けて画面に表示する を参照して下さい。
    SetBkMode() で「背景を塗りつぶし」を設定します。
    ウインドウの色を指定するときは return でブラシを返します。
        case WM_CTLCOLOREDIT:
            hDC = (HDC)wp;
            hCtrl = (HWND)lp;
            if (hCtrl==GetDlgItem(hDlg,IDC_EDIT1))
            {   SetBkMode(hDC, OPAQUE);             // 背景を塗りつぶし
                // テキストの色を設定して下さい。
                // テキストの背景色を設定して下さい。
                return (LRESULT)g_BkColor;          // Edit Box のウインドウの色
            }
        
  6. プログラムを終了する前に作成したブラシを削除して下さい。

【演習】

  1. プログラムを完成させて下さい。
  2. SetBkMode(hDC, OPAQUE); に代えて SetBkMode(hDC, TRANSPARENT); を指定してみて下さい。

超初心者の方のために全ソースコードを掲載します。 (^_^;)
全ソースコード

超初心者のプログラム入門(Win32API C++)