Я использую CComboBox в своем проекте. Я хочу изменить цвет поля со стрелкой на фокусеИзменить цвет границы CComboBox, чтобы показать ошибку и предупреждение
0
A
ответ
1
Наконец-то это сделано, и оно имеет очень простое решение. Я просто переопределил метод onpaint элемента управления.
void CComboBoxOwn::OnPaint()
{
CDC *dc = m_Parent->combobox->GetDC();
CRect rc;
m_Parent->combobox->GetClientRect(rc);
HBRUSH hBrush = CreateSolidBrush(COLORREF(RGB(255, 0, 0)));
FrameRect(dc->m_hDC, rc, hBrush);
DeleteObject(hBrush);
ReleaseDC(dc);
return;
}
+0
Это выглядит не так. Живопись всегда должна использовать «CPaintDC». Кроме того, совершенно неясно, что такое 'm_Parent', или его член' combobox'. Этот ответ обычно не полезен, извините. – IInspectable
+0
CComboboxown - мой класс, где m_parent является переменной-членом класса CComboCntl. –
Для фона, я могу посоветовать вам, чтобы получить документацию о 'OnCtlColor' – sergiol
@sergiol Я проверил это не работает –
Показать код, что вы пытаетесь. –