Я реализовал следующий обработчик сообщений WM_CTLCOLOR следующим образом:
Код: Выделить всё
HBRUSH CFileRenamerDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
CWnd* pWndT = pWnd->GetDlgItem(IDC_STATIC);
// TODO: Change any attributes of the DC here
switch (nCtlColor)
{
case CTLCOLOR_STATIC:
if (pWnd->GetDlgCtrlID() == IDC_STATIC)
{
pDC->SetTextColor(RGB(255, 0, 0));
//MessageBoxW(L"TEST", L"TESTING", 0);
return (HBRUSH)GetStockObject(NULL_BRUSH);
}
}
return hbr;
}
void CFileRenamerDlg::OnBnClickedGo()
{
CWnd* pWnd = this->GetDlgItem(IDC_STATIC);
CDC* dc = pWnd->GetDC();
dc->SetTextColor(RGB(128, 128, 128));
//COLORREF ref = dc->GetTextColor();
pWnd->Invalidate(0);
pWnd->UpdateWindow();
}

Приведенный выше код работает, поскольку цвет статического текстового элемента управления меняется на цвет, указанный выше, но когда я пробую следующий код, написанный в обработчике кнопки GO, он не работает. Никаких ошибок или ошибок утверждения отладки. Как изменить цвет статического текста на любой другой?
Спасибо
Подробнее здесь: https://stackoverflow.com/questions/791 ... ynamically
Мобильная версия