重新设置CTreeCtrl控件的父窗口后,无法获取该树控件的消息事件
时间:2011-11-30
来源:互联网
源码简介:
1. 在Dialog1的OnInitDialog函数中,调用Create创建一个CTreeCtrl全局对象g_treeCtrl,设置其不可见,并指定其父窗口为this(即Dialog1)。之后,向g_treeCtrl插入根、叶结点...。
2. 在Dialog1上点击一个按钮,弹出Dialog2对话框。
3. 在Dialog2的OnInitDialog函数中,调用g_treeCtrl.Setparent(this),重新设置其父窗口,并设置WS_VISIBLE,使其可显示。
4. 为在Dialog2中响应g_treeCtrl控件的TVN_SELCHANGED消息,增加如下代码:
ON_NOTIFY(TVN_SELCHANGED, 0x1234,OnTreeSelChanged)// 说明:0x1234是其ID号,在Dialog1中,创建g_treeCtrl时用的
// ID号就是0x1234。
结果:
当改变树的根节点时,并没有进入OnTreeSelChanged函数中。请问为什么?
1. 在Dialog1的OnInitDialog函数中,调用Create创建一个CTreeCtrl全局对象g_treeCtrl,设置其不可见,并指定其父窗口为this(即Dialog1)。之后,向g_treeCtrl插入根、叶结点...。
2. 在Dialog1上点击一个按钮,弹出Dialog2对话框。
3. 在Dialog2的OnInitDialog函数中,调用g_treeCtrl.Setparent(this),重新设置其父窗口,并设置WS_VISIBLE,使其可显示。
4. 为在Dialog2中响应g_treeCtrl控件的TVN_SELCHANGED消息,增加如下代码:
ON_NOTIFY(TVN_SELCHANGED, 0x1234,OnTreeSelChanged)// 说明:0x1234是其ID号,在Dialog1中,创建g_treeCtrl时用的
// ID号就是0x1234。
结果:
当改变树的根节点时,并没有进入OnTreeSelChanged函数中。请问为什么?
作者: zhouxiangbai 发布时间: 2011-11-30
为啥不再dlg2中建立tree控件,为啥要这样做。。自己找麻烦。。
tree的父窗口还是dlg1。。。。。
tree的父窗口还是dlg1。。。。。
作者: shen_wei 发布时间: 2011-11-30
引用 1 楼 shen_wei 的回复:
为啥不再dlg2中建立tree控件,为啥要这样做。。自己找麻烦。。
tree的父窗口还是dlg1。。。。。
为啥不再dlg2中建立tree控件,为啥要这样做。。自己找麻烦。。
tree的父窗口还是dlg1。。。。。
谢谢您的回复!
确实,tree的父窗口还是dlg1,在dlg1的消息映射中能够捕获tree消息.我这么做,主要是如下考虑:
1. dlg1是主界面窗口,dlg2是弹出的一个子窗口.
2. tree需要加载的数据量很大,比较耗时.而且tree加载数据之前,好像必须被创建(即Create),并指定父窗口,否则加载数据时程序会崩溃.
3. 若是在dlg2中创建tree的话,岂不是每次都要重新加载tree数据?我觉得太耗时了,不合理.所以,想在dlg1中就先创建它,并把数据加载好,然后,在dlg2中显示即可.
作者: zhouxiangbai 发布时间: 2011-12-01
该回复于2011-12-01 10:46:16被管理员删除
- 对我有用[0]
- 丢个板砖[0]
- 引用
- 举报
- 管理
- TOP
|
#4楼 得分:0回复于:2011-12-01 11:31:25
|
作者: allen_lanyuhai 发布时间: 2011-12-01
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28