| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1442 人关注过本帖
标题:关于MFC消息处理的问题
只看楼主 加入收藏
poppylx
Rank: 1
等 级:新手上路
帖 子:367
专家分:0
注 册:2004-9-27
结帖率:100%
收藏
 问题点数:0 回复次数:2 
关于MFC消息处理的问题
今天碰到一个问题
对话框中包含一个控件, 实际上是一个抽象.
在用户点击控件时, 对话框对控件进行处理, 即处理NM_Click.

首先是这样做的
class MyDialog : public CDialog
{
    ....
    OnClickTree();   //处理用户点击Tree的事件
    CTreeCtrl *m_Tree;    //一个指针, 指向一个CTreeCtrl的对象
}
OK, 一切行为良好.

后来需求发生变化, 要求在用户点击控件的时候, 控件自己有所处理, 对话框的处理行为不变.
所以将结构改成这样
class MyTree: public CTreeCtrl
{
    ....
    OnClick();    //控件自己对click事件的处理函数
}
MyDialog保持不变.

这时问题出来了, 由于同是对NM_CLICK的处理, 所以MyDialog无法接收到改消息.
请问各位要如何才能让MyDialog接收到nm_click消息.
搜索更多相关主题的帖子: MFC 控件 对话框 MyDialog CTreeCtrl 
2008-07-04 01:16
poppylx
Rank: 1
等 级:新手上路
帖 子:367
专家分:0
注 册:2004-9-27
收藏
得分:0 
由于考虑到对话框与控件间的依赖性, 所以拒绝了几种做法.
1. 在MyTree::OnClick中send一个自定义消息.
2. MyDialog传递一个函数指针给MyTree, 在MyTree::OnClick中调用该函数指针.
3. 在MyTree::OnClick中完成MyDialog应该做的事情.
请问还有其他方法吗??
即降低两者之间的依赖, 又可以保持控件对外的接口.

动于心而静如水
2008-07-04 01:24
poppylx
Rank: 1
等 级:新手上路
帖 子:367
专家分:0
注 册:2004-9-27
收藏
得分:0 
无法解决吗
还是太容易了 大家不屑于回答??

动于心而静如水
2008-07-04 22:21
快速回复:关于MFC消息处理的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.058091 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved