J'utilise CComboBox dans mon projet. Je veux changer la couleur de la zone de liste déroulante de bordure sur le foyerChanger la couleur de la bordure de CComboBox pour montrer l'erreur et l'avertissement
Répondre
Enfin c'est fait et il a une solution très facile. Je viens de remplacer la méthode onpaint du contrôle.
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;
}
Cela ne semble pas correct. La peinture doit toujours utiliser un 'CPaintDC'. En outre, il n'est pas du tout clair, ce qu'est 'm_Parent' ou son membre' combobox' d'ailleurs. Cette réponse n'est généralement pas utile, désolé. – IInspectable
CComboboxown est ma classe où m_parent est la variable membre de la classe CComboCntl. –
Pour la couleur d'arrière-plan, je peux vous conseiller de voir la documentation sur 'OnCtlColor' – sergiol
@sergiol Je l'ai vérifié ne fonctionne pas –
Montrez votre code, ce que vous avez essayé. –