对话框调用uc1630()的问题
设计的对话框里有个按钮的回调函数里调用了uc1630(),为什么没有反应?大伙有这样的经历吗,分享一下,怎么解决。 有没有加 ufun初始化uf_initialize()
程序里加了,这行代码上下的都执行了,就是这行没执行 int ATT_EDT_CUSTOM_CAL ( int dialog_id,
void * client_data,
UF_STYLER_item_value_type_p_t callback_data)
{
UF_STYLER_item_value_type_t data;
int stock_class=0;
int count=0;
tag_p_t objects;
//设置坐标系
double csys_origin={0.0,0.0,0.0};
tag_t matrix_id;
tag_t csys_id ;
int option=15;
double csys_matrix;
char title="定义临时坐标系";
//毛坯尺寸
char stock_size;
//坐标对齐边界盒
logical expand=FALSE;
double min_corner;
double directions;
double distances;
//坐标系定义对话框返回值
int response;
/* Make sure User Function is available. */
if ( UF_initialize() != 0)
return ( UF_UI_CB_CONTINUE_DIALOG );
/* ---- Enter your callback code here ----- */
data.item_attr=UF_STYLER_SELECTION;
data.item_id=UF_STYLER_DIALOG_INDEX;
UF_STYLER_ask_value(dialog_id,&data);
UF_UI_ask_sel_object_list(data.value.selection,&count,&objects);
data.item_attr=UF_STYLER_VALUE;
data.item_id=ATT_EDT_STOCK_CLASS;
UF_STYLER_ask_value(dialog_id,&data);
stock_class=data.value.integer;
uc1630(title,&option,csys_matrix,csys_origin);
//定义坐标系
if(0==stock_class)
{
uc1601("定义临时坐标系",0);
response=uc1630(title,&option,csys_matrix,csys_origin);
}
if(0==count||3!=response)
{
uc1601("请选择实体或定义坐标系",1);
}
else if(3==response)
{
UF_CSYS_create_matrix(csys_matrix,&matrix_id);
UF_CSYS_create_csys(csys_origin,matrix_id,&csys_id);
UF_MODL_ask_bounding_box_aligned(objects,csys_id,expand,min_corner,directions,distances);
stock_size_string(distances,stock_class,stock_size);
data.item_attr=UF_STYLER_VALUE;
data.item_id=ATT_EDT_MAT_DIM;
data.value.string=stock_size;
UF_STYLER_set_value(dialog_id,&data);
UF_OBJ_delete_object(csys_id);
}
UF_terminate ();
/* Callback acknowledged, do not terminate dialog */
return (UF_UI_CB_CONTINUE_DIALOG);
/* or Callback acknowledged, terminate dialog. */
/* return ( UF_UI_CB_EXIT_DIALOG ); */
}
路过的大神指点一下啊,这个问题折腾了我一个多星期了 有办法解决吗? 谢谢你ypcopy,我刚刚找到解决办法,已经搞出来了,就是把对话框的那个按钮点上创建对话框,对应的头文件更新了一下
页:
[1]