Сообщение Re: Проблема с установкой цвета текста и фона бегущей строки от 18.01.2017 14:10
Изменено 18.01.2017 14:32 Evgeniy Skvortsov
Re: Проблема с установкой цвета текста и фона бегущей строки
Здравствуйте, RussianFellow, Вы писали:
Можно конечно и так, но намного проще не отрисовку полностью руками делать, а просто обрабатывать WM_ONCTLCOLOR в самом диалоге.
И не нужно никаких лишних классов.
WM_PAINT перекрывают обычно если нужно как-то кардинально изменить внешний вид контрола, а если просто цвет изменить, то WM_ONCTLCOLOR — самое то.
Код | |
| |
Можно конечно и так, но намного проще не отрисовку полностью руками делать, а просто обрабатывать WM_ONCTLCOLOR в самом диалоге.
И не нужно никаких лишних классов.
HBRUSH CMFCApplication3Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) {
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
if (pWnd->GetDlgCtrlID() == IDC_STATIC1) {
// меняем цвет текста на красный
pDC->SetTextColor(RGB(255, 0, 0));
// меняем цвет фона на зелёный
pDC->SetBkColor(RGB(0, 128, 0));
}
return hbr;
}
WM_PAINT перекрывают обычно если нужно как-то кардинально изменить внешний вид контрола, а если просто цвет изменить, то WM_ONCTLCOLOR — самое то.
Re: Проблема с установкой цвета текста и фона бегущей строки
Здравствуйте, RussianFellow, Вы писали:
Можно конечно и так, но намного проще не отрисовку полностью руками делать, а просто обрабатывать WM_ONCTLCOLOR в самом диалоге.
И не нужно никаких лишних классов.
WM_PAINT перекрывают обычно если нужно как-то кардинально изменить внешний вид контрола, а если просто цвет изменить, то WM_ONCTLCOLOR — самое то.
Код | |
| |
Можно конечно и так, но намного проще не отрисовку полностью руками делать, а просто обрабатывать WM_ONCTLCOLOR в самом диалоге.
И не нужно никаких лишних классов.
HBRUSH CMFCApplication3Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) {
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
if (pWnd->GetDlgCtrlID() == IDC_STATIC1) {
pDC->SetTextColor(RGB(255, 0, 0));
pDC->SetBkColor(RGB(0, 128, 0));
}
return hbr;
}
WM_PAINT перекрывают обычно если нужно как-то кардинально изменить внешний вид контрола, а если просто цвет изменить, то WM_ONCTLCOLOR — самое то.