我在工具栏上创建了一个组合框,现想自绘组合框,实现改变字体颜色
可是
!m_comboBox.Create(CBS_DROPDOWNLIST | WS_VISIBLE | WS_VSCROLL | CBS_AUTOHSCROLL | CBS_OWNERDRAWFIXED, Rect, m_pToolBar, IDC_COMBOBOX))
总是出错!
但是如不加CBS_OWNERDRAWFIXED就行,但是不能自绘了:(
谁有解决方案阿?

解决方案 »

  1.   

    m_comboBox就是我的派生类,也重载了DrawItem函数
    但是调试时,程序没有进入DrawItem函数
    我认为问题是要加CBS_OWNERDRAWFIXED,但是create总是出错
    还有没有其他建议?
      

  2.   

    在PreSubclassWindow()里面通过SetStyle函数加上自绘属性试试.
      

  3.   

    先不加CBS_OWNERDRAWFIXED。
    他它的oncreate事件里,再把风格改过来
      

  4.   

    还有好像不应该用create方法来构造, 应该用SubclassDlgItem方法
      

  5.   

    是不是在这里改风格啊?好像没用,还是不能自绘,没有跳到DrawItem函数里
    int CWLComboBox::OnCreate(LPCREATESTRUCT lpCreateStruct) 
    {
      lpCreateStruct->dwExStyle |= CBS_OWNERDRAWFIXED;
      if (CComboBox::OnCreate(lpCreateStruct) == -1)
         return -1;
      return 0;
    }
      

  6.   

    你可以用CComboBoxEx类来实现你要的功能,字体颜色不能变,但能通过添加图标来显示颜色。