Обрабатывать WM_DRAWITEM сообщение в родительском окне, когда кнопка, нарисованная владельцем, хочет изменить свой цвет.
Создать кнопку, нарисованную владельцем, с помощью BS_OWNERDRAW style :
hwndButton1 = CreateWindowW(L"BUTTON", NULL,
WS_CHILD | WS_VISIBLE | BS_OWNERDRAW,
10, 10, 100, 100,
hWnd, NULL, (HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE), NULL);
В окне Window родительского окна кнопки:
case WM_DRAWITEM:
{
LPDRAWITEMSTRUCT lpDIS = (LPDRAWITEMSTRUCT)lParam;
if (hwndButton1 == lpDIS->hwndItem)
{
SetDCBrushColor(lpDIS->hDC, RGB(255, 0, 0));
SelectObject(lpDIS->hDC, GetStockObject(DC_BRUSH));
RoundRect(lpDIS->hDC, lpDIS->rcItem.left, lpDIS->rcItem.top,
lpDIS->rcItem.right, lpDIS->rcItem.bottom, 5, 5);
return TRUE;
}
}
break;