1

我正在创建一个 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.
            }
        }
4

1 回答 1

1

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

于 2012-11-07T19:27:05.240 回答