牵着老婆满街逛

严以律己,宽以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

如何使子控件和父窗口都能接受到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;
}

posted on 2009-09-24 14:51 杨粼波 阅读(1247) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理