NX二次开发-绕开BLOCKUI消息机制方法两则
好酷屋教程网小编为您收集和整理了NX二次开发-绕开BLOCKUI消息机制方法两则的相关教程:适用版本:NX6版本以上 一、概述 在做NX二次开发时,最常用的是NX自带的BLOCK对话框。但它有一些固定的消息机制。例如在树控件的响应信息里添加弹出一个新的BLOCK,关掉新的对话框,旧的
适用版本:NX6版本以上
一、概述
在做NX二次开发时,最常用的是NX自带的BLOCK对话框。但它有一些固定的消息机制。例如在树控件的响应信息里添加弹出一个新的BLOCK,关掉新的对话框,旧的对话框也会被隐藏,还存在内存中,未被销毁,所以这种方法不可取。又例如BLOCK的应用按钮点击之后,会刷新对话框,所有数据重新刷新,可以在初始化里进行设置保留应用之前的数据,但比较麻烦。
二、功能说明
上述描述的就是NX自动对话框的两个固定消息机制,比较难破解,但可以通过以下两个具体方法绕开:
BLOCK的树控件的所有响应信息里(包括双击、单击、右键)都不可弹出新的BLOCK,弹出新对话框,关闭新对话框,旧对话框只是被隐藏,内存一直都在。
我们可以通过添加一个按钮,对这个按钮添加弹出新对话框的响应,设置单选了树控件的某个节点后,这个按钮可以使用。这种打开新对话框关闭后,还能返回之前对话框;
所以我们可以在树控件的响应里,先抓取按钮的句柄,然后通过发送消息模拟点击刚才创建的按钮,这样就没有问题了,能返回之前对话框。函数如下:
图1
跳过Apply的界面刷新,可以通过一个内部函数SetAutoCommit;在对话框的initialize_cb函数里对某个按钮进行设置,设置为真。这样就能实现自动提交模式,实现的效果是:打开对话框,对话框上只有关闭按钮,没有确定、应用、取消。如果对话框中存在必选控件,则按钮默认为不可编辑,只有所有必选控件选择对象后,按钮才能编辑,点击之后,则生成结果,整个过程类似于点击apply按钮,执行了响应,但所有控件都不刷新,不需要重新设置,起到一个较好的保留数据效果。
图2
三、总结
有一个注意点,如果对按钮使用autocommit,它不是真正的Apply,需要在程序中给进行的操作添加undoMark标记,以便后续撤销。
以上是两种比较实用的小技巧。Block有很多隐藏功能,还需要不断探索。
以上就是好酷屋教程网小编为您收集和整理的NX二次开发-绕开BLOCKUI消息机制方法两则相关内容,如果对您有帮助,请帮忙分享这篇文章^_^
本文来源: https://www.haoku5.com/IT/639da84008792720640fe72d.html
相关推荐