在命令上创建或删除GDI形状

时间:2012-11-07 16:56:28

标签: c++ winapi gdi

我正在创建一个win32应用程序。在主窗口上有5个按钮。在每个按钮前面有一个小圆圈。 (使用GDI工具。万一WM_PAINT)。现在,当我按下一个按钮时,它前面的圆圈应该是红色。我怎么能这样做。

如果我们创建一个编辑框,我们可以使用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.
            }
        }

1 个答案:

答案 0 :(得分:1)

您无法更改已绘制图像的颜色,但可以重绘它。使用Windows函数InvalidateRect告诉控件需要重绘它,并且您将再次调用WM_PAINT处理程序。在处理程序中,在绘制圆圈之前选择所需的颜色。