Создание или удаление фигур 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

Решение

Вы не можете изменить цвет уже нарисованного изображения, но вы можете перерисовать его. Используйте функцию Windows InvalidateRect сообщить контролю, что его нужно перерисовать, и вы получите еще один вызов WM_PAINT обработчик. В обработчике выберите нужный цвет, прежде чем нарисовать свой круг.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]