Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

ПОМОГИТЕ С ЗАДАЧЕЙ С++

Нина Якимович Ученик (125), на голосовании 5 месяцев назад
Создайте кнопку с id = ID_SHOW_MSG, при нажатии на которую, цвет фона окна должен меняться на рандомный, метод должен называться OnShow. (Прикрепите только код обработчика сообщения данной кнопки). Пример кода: void CMFCApplicationDlg::Название_метода() { код }
Голосование за лучший ответ
Национальный Социалист Мастер (1440) 6 месяцев назад
 void CMFCApplicationDlg::OnShowMsg()  
{

COLORREF crColor = RGB(rand() % 255, rand() % 255, rand() % 255);

// Изменение цвета фона окна
CBrush br(crColor);
CWnd* pWnd = this;
while (pWnd != NULL)
{
pWnd->SetBkColor(crColor);
pWnd = pWnd->GetParent();
}
}
Ilham Efremov Гуру (2534) 6 месяцев назад
void CMFCApplicationDlg::OnShow()
{
COLORREF color = RGB(rand() % 256, rand() % 256, rand() % 256);
GetDlgItem(ID_SHOW_MSG)->SetBackgroundColor(color);
}
Татьяна Просветленный (36384) 6 месяцев назад
Код обработчика сообщения для кнопки с 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();
}
Похожие вопросы