Код обработчика сообщения для кнопки с id = ID_SHOW_MSG, который изменяет цвет фона окна на случайный при нажатии:
void CMFCApplicationDlg::OnShow()
{
// Генерация случайного цвета
COLORREF randomColor = RGB(rand() % 256, rand() % 256, rand() % 256);
// Получение дескриптора окна
CWnd* pWnd = GetDlgItem(ID_SHOW_MSG);
if (pWnd != nullptr)
{
// Получение контекста устройства для окна
CDC* pDC = pWnd->GetDC();
if (pDC != nullptr)
{
// Создание кисти с случайным цветом
CBrush brush(randomColor);
CBrush* pOldBrush = pDC->SelectObject(&brush);
// Получение размеров окна
CRect rect;
pWnd->GetClientRect(&rect);
// Закрашивание фона окна
pDC->PatBlt(0, 0, rect.Width(), rect.Height(), PATCOPY);
// Восстановление старой кисти и освобождение контекста устройства
pDC->SelectObject(pOldBrush);
pWnd->ReleaseDC(pDC);
}
}
// Обновление окна
Invalidate();
UpdateWindow();
}