我正在创建一个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.
}
}
答案 0 :(得分:1)
您无法更改已绘制图像的颜色,但可以重绘它。使用Windows函数InvalidateRect
告诉控件需要重绘它,并且您将再次调用WM_PAINT
处理程序。在处理程序中,在绘制圆圈之前选择所需的颜色。