参数选择对话框
函数UF_UI_select_parameters提供参数选择对话框,函数原型如下:
int UF_UI_select_parameters( char* message, tag_t feature_tag, int* count, tag_t** exp_tags, int* response);
第一个参数还是状态栏消息提示。
第二个参数是特征的对象标识。
第三个参数是所选特征的参数数目。
第四个参数是所选参数对应的表达式,该参数是动态分配的一个数组,所以使用完成之后需要调用UF_free释放内存。
最后一个参数是对话框返回值,依旧是UF_UI_OK、UF_UI_BACK和UF_UI_CANCEL中的一个。
使用示例如下:
#include <uf.h> #include <uf_part.h> #include <uf_ui.h> #include <uf_modl.h> #include <uf_exit.h> #include <string> void DlgTest() { int count; tag_t* pfts=NULL_TAG; int response; char msg[100]; UF_UI_select_feature("Select Feature:",NULL,&count,&pfts,&response); if(response==UF_UI_OK) { sprintf_s(msg,"Total Feature(s) Selected: %d",count); uc1601(msg,1); for(int i=0;i<count;i++) { tag_t tt=pfts[i]; int cnt_pmt; tag_t* p_pmt=NULL_TAG; int res; sprintf_s(msg,"Parameters of Feature %d:",i+1); UF_UI_select_parameters(msg,tt,&cnt_pmt,&p_pmt,&res); if(res==UF_UI_OK) { char* expStr=nullptr; for(int j=0;j<cnt_pmt;j++) { UF_MODL_ask_exp_tag_string(p_pmt[j],&expStr); sprintf_s(msg,"Expression of Parameter %d in Feature %d is \"%s\"",j+1,i+1,expStr); uc1601(msg,1); } UF_free(p_pmt); } } UF_free(pfts); } } //入口函数 extern DllExport void ufsta( char *param, int *returnCode, int rlen) { if(UF_initialize()) return; //Add your code here DlgTest(); UF_terminate(); } //退出函数 extern int ufusr_ask_unload() { return UF_UNLOAD_IMMEDIATELY; } 运行效果如下:
该程序相当是显示用户所选的多个特征下的每一个所选择的参数的表达式。
评论