有一ComboBox控件
怎么改变他的背景颜色和文字颜色(包括本身的颜色和下拉的那个框里的颜色)
ComboBox有DropDown属性,而不是DropList(也就是说除了选择还可以自己填的那种)不要随便回答,要实验确实可以才行哦

解决方案 »

  1.   

    继承ComboBox后
    重写OnPaint,DrawItem,OnCtlColor,OnEraseBkgnd我都试过了,达不到我要的效果啊
      

  2.   

    http://www.codeproject.com/combobox/SuperComboBox.asp
      

  3.   

    好像在OnCtlColor里就可以的啊
    我测试成功了的
    不信你试试BOOL CXXDlg::OnInitDialog()
    {
        ....
        m_brush =CreateSolidBrush(RGB(0,0,0));
        ....
    }
    HBRUSH CXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    // TODO: Change any attributes of the DC here
    if( pWnd->GetDlgCtrlID() == IDC_COMBO1 )//IDC_COMBO1 是要变色的ComboBox
    {
    if (nCtlColor==CTLCOLOR_LISTBOX ||nCtlColor==CTLCOLOR_EDIT)
    {
    pDC->SetTextColor (RGB (0, 250 ,220));
    pDC->SetBkColor (RGB (0,0,0));
    return  m_brush;
    }
    }
    // TODO: Return a different brush if the default is not desired
    return hbr;
    }
      

  4.   

    楼上的例子不行,已经说了,ComboBox有DropDown属性,而不是DropList
      

  5.   

    to dazedase
    果然可以
    我搞错东西了,
    十分感谢