作了一个CColorPicker类继承CCombobox,放到Toolbar上
因为没有定义可视的资源,自定义了一个资源
#define IDC_MYCOMBO 100
重载了Create函数(因为有多种ComboBox根据不同的需要创建)
重载时调用
CComboBox::Create(WS_VSCROLL|WS_VISIBLE|WS_TABSTOP|CBS_DROPDOWNLIST|CBS_OWNERDRAWFIXED,rctmp, pParentWnd, nID);
则出错,debug进去提示CComboBox ???
如果不加CBS_OWNERDRAWFIXED没问题。
但是重载的DrawItem不起作用。因为要做颜色列表框,所以要重载。
Debug状态报错,release状态可以。
请高手解决,100分送上。

解决方案 »

  1.   


    是否create前指针没有置NULL,
    用完后要释放
      

  2.   

    http://www.codeguru.com/Cpp/controls/combobox/
    Colour Pickers
      

  3.   

    CColorPickerCB m_ColorCombo;
    不是定义的指针。怎么设为null?
    另外源程序我有,但是他是利用资源文件里面的控件做的,我是自己定义的
    #define IDC_MYCOMBO 100
    因为toolbar上面不能直接放combobox
      

  4.   

    http://www.codeguru.com/Cpp/controls/toolbar/placingcontrolsintoolbars/article.php/c2519/
      

  5.   

    我大概看了一下代码,感觉是你重载造成的问题
    OnCreate里没有调用Initialize();
    int CColorPickerCB::OnCreate( LPCREATESTRUCT pCStruct ) 
    {
    if( CComboBox::OnCreate( pCStruct ) == -1 ) // If Create Failed
    return( -1 ); // Return Failure

    Initialize(); // Initialize Contents
    SetCurSel( 0 ); // Select First Item By Default return( 0 ); // Done!
    }