老师好:
我现在的问题是:
1、使用全局变量,给指定控件赋值。界面如图:
2、右侧对话框 采用的是 DItem_ContainerRsc 放置 资源 DialogItemListRsc,并在DialogItemListRsc 上面放置需要的控件比如文本编辑框。
3、HOOK 事件 是在 DItem_ContainerRsc 上面做的,采用的消息类型如下:
4、正常 我是可以 获取到左侧 三级节点的节点名称的,已经测试过没有问题。但是 在第二次单机左侧三级节点 切换的时候,可以获取 对应的节点名称等信息,但是不能刷新到右侧界面
对应的控件上。
5、所以 我个人认为是不是 没有刷新的问题,所以 也尝试了一些刷新的方法基于 该HOOK 消息 的 dimp->db ,结果不成功。所以 请老师 帮忙看一下!是哪里的问题。
辛苦老师了!!!!
我认为应该在左侧节点上挂上消息处理函数,每当有节点切换时在消息函数中对右侧相关的item的那些全局变量重新赋值,然后调用mdlDialog_itemsSynch同步一下右侧对话框就可以了。
Answer Verified By: 平凡人生
好的 傅老师!我试一下!但是我感觉 会不会 针对 左侧 各节点都是 同一个对话框,只是赋值不同的话,系统其实 只创建一次,所以在对话框中采用case DITEM_MESSAGE_INIT : case DITEM_MESSAGE_UNOBSCURED:
的时候,init 只相应一次,UNOBSCURED可以触发多次!而且mdlDialog_itemsSynch 我在 对话框的HOOK 中用过的,当时 想按照异步刷新的思路 做的,所以 在对话框自身 异步刷新 自身的控件!但是没有成功!!!!
总之 我先测试一下吧,我会把测试结果 向您反馈的!!!
Bentley 二次开发小白一枚
哦对了,老师 ,怎么在左侧树形结构事件中获取右侧对话框的句柄啊?
老师您好!感谢您的提示!问题已经解决!思路和您说的基本一致。具体做法是 先 用mdlDialog_itemsSynch 刷新对话框 ,然后 再显示对话框。数据就可以放到 DITEM_MESSAGE_UNOBSCURED下面 进行 所谓的数据更新操作了。针对同一个对话框下的不同状态!!!!