如何使子控件和父窗口都能接受到CBN_SELCHANGE事件?

如何使子控件和父窗口都能接受到CBN_SELCHANGE事件?

转载自:http://hi.baidu.com/whitecpf/blog/item/f352291fac866bcea786690b.html


 情况是这样的:在对话框中有一个自定义组合框控件CMyComboBox,它继承自MFC类CComboBox。在自定义的组合框中,要处理这样一种情况,如果用户没有改变CMyComboBox的值,则不给父窗口发消息,如果改变了,则通知父窗口以进行其它的更新工作。解决方案如下:
// CMyComboBox.h
class  CMyComboBox :  public  CComboBox
{
    
    afx_msg BOOL OnSelchange();
    
}

// CMyComboBox.cpp
BEGIN_MESSAGE_MAP(CMyComboBox, CComboBox)
    ON_CONTROL_REFLECT_EX(CBN_SELCHANGE, OnSelchange)
END_MESSAGE_MAP()
BOOL
CMyComboBox::OnSelchange()
{
    
    
if(值发生改变)
    
{
        
        
        
//注意:返回“假”时会通知父窗口
        return FALSE;
    }

    
    
//注意:返回“真”时不通知父窗口
    return TRUE;
}

你可能感兴趣的:(如何使子控件和父窗口都能接受到CBN_SELCHANGE事件?)