humanster 发表于 2017-5-26 17:05:57

Block UI Apply的返回值

版主:
       问个问题,在BlockUI里面,如果界面上所有需要设置的Block元素设置好之后,这时候Apply按钮可以点击了
但是如果中途我们判断有些条件不正确,不想让Apply执行完,就在中途返回,或者抛一个异常让Apply回调捕获,
       这时候,如果Apply回调的返回值errorCode是0,它会把当前界面上所有Block元素已经设置的值都清空(比如已经选择的面,体。。)
如果让这个返回值不为0,它不会清Block元素,但是会多弹出一个外部库异常的提示。
       问下这个有什么办法可以解决。
int xxxx::apply_cb()
{
        int errorCode = 0;
        try
        {
。。。。。。。
        }
        catch (exception& ex)
        {
                //---- Enter your exception handling code here -----
                errorCode = 1;
                InsertDesgin::theUI->NXMessageBox()->Show("BlcokUI styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
        }
        return errorCode;
}

rkc_555 发表于 2017-5-30 16:38:59

这样做不太好,程序效率不高,你可以在update函数里面做条件判断,这样你每次交互都可以知道有没有异常

humanster 发表于 2017-6-2 01:39:54

rkc_555 发表于 2017-5-30 16:38
这样做不太好,程序效率不高,你可以在update函数里面做条件判断,这样你每次交互都可以知道有没有异常 ...

我明白你的意思,主要还是BlockUI的机制。因为界面上Apply按钮启用了以后,用户是直接可以中键进行操作的,难免有误操作。如果在Updata里面做,有什么办法可以把Apply按钮禁用掉么

BLockUI的确进步了很多,加了很多控件和特征,但是有些地方还是约束的太多了,感觉没有UIstyler和MFC灵活,我现在一般都习惯在UIstyler里面嵌入MFC控件来整。用BlockUI也就是只想用下手柄

rkc_555 发表于 2017-6-2 18:18:23

humanster 发表于 2017-6-2 01:39
我明白你的意思,主要还是BlockUI的机制。因为界面上Apply按钮启用了以后,用户是直接可以中键进行操作的 ...

好像有方法的,你在编辑UI界面时,在代码生成界面上有个“启用确定/应用按钮”,你把这个设为TRUE,然后再加代码到里面试试,我没用过这个函数,不知道行不行

humanster 发表于 2017-6-19 12:34:17

rkc_555 发表于 2017-6-2 18:18
好像有方法的,你在编辑UI界面时,在代码生成界面上有个“启用确定/应用按钮”,你把这个设为TRUE,然后再 ...

好的,谢谢!看来也只有这个方法了!
页: [1]
查看完整版本: Block UI Apply的返回值