**1、西门子针对事件触发应用按钮效果给出了方法:
## 方案1:
theDialog->PerformApply();
在BlockUI中,往往希望点击关闭或取消后创建的操作不会撤销,通过执行performApply()可以达到此效果,此时相当于点击了应用会重构UI,此方法不适合复杂的UI重构,因为每执行一次就会重新加载一次UI。
方案2:
另一个思路,做UI的时候取消对话框上的“确定”、“应用”按钮,只保留“关闭”(此方法参考唐康林先生的《NX二次开发BlockUI删除undomark的可行性》),就可以实现关闭或取消后保留创建的操作!但是此时对话框框架设置的撤销标记还在,只是此时关闭不会再返回对话框的Undo Mark。
怎样在关闭后直接删除该对话框创建的撤销标记呢,在对话框析构那里加删除undo mark的函数即可,如:
Test_SCHEME_CONFIG::~Test_SCHEME_CONFIG()
{
if (theDialog != NULL)
{
theSession->DeleteAllUndoMarks();
delete theDialog;
theDialog = NULL;
}
}
下图为打开对话框即创建一个方块,设置颜色为红色,关闭对话框后方块保留且所有的撤销标记已被删除!