请问怎样在View类中映射停靠对话条中ComBoBox中的ON_CBN_SELCHANGE消息?
假如我的View类是CMyView,父类CEditView
    我的对话条类是CMyDialogBar,父类CDialogBar
    我的ComBoBox控件ID是:IDC_COMBO_ONE
    
分不够再开贴加分!

解决方案 »

  1.   

    在.h中
    project:   afx_msg void OnSelchangeComboone();
    在.cpp中
    BEGIN_MESSAGE_MAP(CMyView, CView)
    ON_CBN_SELCHANGE(IDC_COMBO_ONE, OnSelchangeComboone)
    END_MESSAGE_MAP()
    void CMyView::OnSelchangeComboone()
    {}
      

  2.   

    在CDialogBar中对于CComboBox一类的控件,ON_CBN_SELCHANGE消息是不会做出响应的,编译器认为其不是一个窗口类!
    正确的做法是利用VC6中的CReBar的特殊功能AddBar(&m_comboBoxCtrl)来实现,方法同楼上的做法,手工加入ON_CBN_SELCHANGE消息;
    如果是用的VC5,则只好利用CToolBar进行派生,建立CComboBox成员,手工建立ComboBoa,加入ON_CBN_SELCHANGE消息!
      

  3.   

    to  dqhart:
    只能用CReBar么?
    用bitmap自己创建的ComBoBox的OnSelChange消息能不能被响应啊?
      

  4.   

    你可以看一看MFC自带的例子,我都已经实现了,我想你也可以的!
    例子在Samples\Vc98\Mfc\Internet\Mfcie
      

  5.   

    你可以看一看MFC自带的例子,我都已经实现了,我想你也可以的!
    例子在Samples\Vc98\Mfc\Internet\Mfcie
      

  6.   

    to:qingqingliman(筒裙) 
    完全可以!
      

  7.   

    当然并不一定非得用CReBar,你也可以用CToolBar派生啊!
    但是太麻烦了,我就在VC5下实现过!
      

  8.   

    看了好多关于CToolBar派生的文字,觉得好烦的
    哎,真实别扭啊
      

  9.   

    看了好多关于CToolBar派生的文字,觉得好烦的
    昨天听一个csdn上的网友说用CDialogBar不错,我就照做了,感觉还不是很麻烦,今天你这样一说,我昨天做的又得重来啊
    哎,真实别扭啊,不过我还是对CDialogBar更有兴趣
    为什么回不响应呢?既然微软作出CDialogBar这个类肯定有他的用处的啊
      

  10.   

    CDialogBar上控件的消息一般都由他的父窗口——CMainFrame处理。
    1 在CMainFrame的类声明中添加CComboBox成员变量m_cboMyTest;2 在CMainFrame的类声明中添加消息处理函数:afx_msg void 
    protected:
    //{{AFX_MSG(CMainFrame)
    afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
    afx_msg void OnButtonExit();
    //}}AFX_MSG
    DECLARE_MESSAGE_MAP()
    OnSelChangeCbobox();//(名字随便取)
    3 在CMainFrame的OnCreate()函数中添加:
    m_cboMyTest.SubclassDlgItem(IDC_CBO_CBOBOX,&m_wndDlgMyDialogBar);
    IDC_CBO_CBOBOX为ComboBox的资源ID。
    &m_wndDlgMyDialogBar为对话条变量。
    4 在CMainFrame的映射表中的//}}AFX_MSG_MAP下面添加
    ON_CBN_SELCHANGE(IDC_CBO_CBOBOX,OnSelChangeCbobox)。
    5 完成CMainFrame::OnSelChangeCbobox()函数