iCAx开思网

标题: 请问UF_UI_set_sel_mask与UF_UI_set_sel_procs这两个函数之间有什么区别? [打印本页]

作者: SIM    时间: 2005-10-11 20:19
标题: 请问UF_UI_set_sel_mask与UF_UI_set_sel_procs这两个函数之间有什么区别?
如题。
特别是mask中的设置和procs中的第二个参数的设置有什么不同之处?
可不可以两个函数一起用?
谢谢!
作者: pzytony    时间: 2005-10-11 20:49
这个问题问的很好,有一定的深度,因此给问者加1分。我考虑很久而不得其解,故为鼓励大家回答,先答对者加2分!
作者: supergirl    时间: 2005-10-11 20:53
UF_UI_set_sel_mask是用来设置selection该选哪些类型东东,比如是选solid还是选curve啊之类的。
第二个参数action说明的是你在选东东的时候想怎么选,它是个枚举:
UF_UI_SEL_MASK_ENABLE_ALL:是所有的标准类型都可以选
UF_UI_SEL_MASK_ENABLE_SPECIFIC:是选指定的类型,函数第三个参数num为可选类型的数量,第四个参数mask_triples为具体的类型
UF_UI_SEL_MASK_DISABLE_SPECIFIC:是不选指定的类型,num为不可选类型数量,mask_triples为具体的类型
UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC:与第二种差不多,只不过要清空 filter
UF_UI_SEL_MASK_ALL_AND_DISABLE_SPECIFIC:可选除了指定的类型外的所有标准类型。


UF_UI_set_sel_procs是用来设置selection在选中东东时候的操作,以及你不想选那些东东的操作,比如,选solid的时候我可以控制只让选block,不让选cylinder。

控制选中时要做的操作写sel_cb中,控制不选哪些东东或者选不中的操作写在filter_proc中,这两个东东都是函数指针,user_data,是相当于给这两个函数指定指定的函数输入的参数,注意它是一个void * 的类型,所以你可以自己定义一个复杂的结构体,然后把它的指针强制类型转换为void *传进去。

不过一般情况下,selection都搞不到这么麻烦,UF_UI_set_sel_mask就基本够用了,难道你还真的要用户只准选左边那个红色的block,不让它选右边那个绿色的block啊?

最后提醒一句,这两个参数都是只能用UIstyler的对话框才能用,自己用其他东东开发的界面是没有办法用的。呵呵,其实自己仔细看看说明和例子,都能明白是什么意思,UF的帮助还是写得可以的,只要你去看,基本上都可以理解。

[ 本帖最后由 supergirl 于 2005-10-11 20:55 编辑 ]
作者: SIM    时间: 2005-10-11 21:20
顶啊
回答得好详细!
谢谢
作者: repick    时间: 2010-3-12 14:28
呵呵 非常感谢 3楼的详解 受益颇多啊
作者: lgmsddy    时间: 2010-3-14 07:38
无私,要顶………………
作者: 无雨    时间: 2011-3-14 18:37
非常感谢!
学习学习!




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3