1

win32 アプリケーションを作成しています。メイン ウィンドウには 5 つのボタンがあります。各ボタンの前に小さな円が描かれています。(WM_PAINT の場合は GDI ツールを使用)。ボタンを押すと、その前の円が赤色になります。これどうやってするの。

いつでも編集ボックスを作成すると、SendMessege を使用してテキストを変更できます。そのように、以前に描いた図形の色を変更することは可能です。

誰かアドバイスをください。

case WM_PAINT:
    {
    PAINTSTRUCT ps;
    HDC hDC;
    HBRUSH brusha;

    hDC=BeginPaint(hWnd,&ps);       
    brusha=CreateSolidBrush(RGB(0,255,0));
    SelectObject(hDC,brusha);
    Ellipse(hDC, 20, 20, 50, 50);
    DeleteObject(brusha);
    EndPaint(hWnd, &ps);
    }

 case WM_COMMAND:
      switch(LOWORD(wParam))
        {
            case BUTTON:
            {
             //here I need to change the above drawn corcle to be red.
            }
        }
4

1 に答える 1

1

既に描画された画像の色を変更することはできませんが、再描画することはできます。Windows 関数InvalidateRectを使用して、再描画する必要があることをコントロールに伝えます。これにより、WM_PAINTハンドラーへの別の呼び出しが得られます。ハンドラーで、円を描く前に目的の色を選択します。

于 2012-11-07T19:27:05.240 に答える