好酷屋

NX二次开发-绕开BLOCKUI消息机制方法两则

好酷屋

发布于2022-12-17

好酷屋教程网小编为您收集和整理了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

相关推荐

    热门专题