用到头文件
#include <uf_ui.h>
#include <uf.h>
文件对话框主要有3种常用的标准对话框
UF_UI_create_part() //File- >New File创建一个部件并使其成为工作部件选择对话框
UF_UI_open_part() //File- >Open File打开一个部件并使其成为工作部件选择对话框。
UF_UI_create_filebox() //文件选择对话框可以选择各类文件打开,而前两种只适合(.prt)类型
下面进行代码和图片详细详细说明
//自定义错误信息结构体
static logical my_error_handler(UF_UI_err_data_p_t error_fn_data, char * file_name,
int error, UF_PART_load_status_t * error_status, logical * skip_error_disp)
{
fprintf(stderr, "my_error_handler called with:\n" "error_fn_data->size=%d\n" "error_fn_data->data=%s\n"
"file_name=%s\n" "erroe =%d\n", error_fn_data->size, (const char *)error_fn_data->data, file_name, error);
*skip_error_disp = TRUE;
return TRUE;
}
/*
static logical my_error_handler(UF_UI_err_data_p_t error_fn_data, char * file_name,
int error, logical * skip_error_disp)
{
fprintf(stderr, "my_error_handler called with:\n" "error_fn_data->size=%d\n" "error_fn_data->data=%s\n"
"file_name=%s\n" "erroe =%d\n", error_fn_data->size, (const char *)error_fn_data->data, file_name, error);
*skip_error_disp = TRUE;
return TRUE;
}
*/
/
UF_initialize();
/*
//File- >New File创建一个部件并使其成为工作部件选择对话框。
UF_UI_err_t error_newfile_fn;
char file_name[256]= "box.prt";
int units = UF_PART_METRIC;
tag_t partTAG=NULL_TAG;
int response=0;
const char *message = "create open error!";
error_newfile_fn.type = UF_UI_create_part_fun; // UF_UI_create_part_fun,UF_UI_open_part_fun 创建零件函数,打开零件函数
error_newfile_fn.fun.create = my_error_handler;
error_newfile_fn.fun_data.size = strlen(message) + 1;
error_newfile_fn.fun_data.data = message;
UF_UI_create_part(&error_newfile_fn, file_name, &units, &partTAG, &response);
*/
//File- >Open File打开一个部件并使其成为工作部件选择对话框。
//声明变量
/*
int response;
tag_t part_tag = NULL_TAG;
char file_name[MAX_FSPEC_SIZE + 1] = "flange.prt";
const char *message = "part open error";
logical use_display_file = FALSE;
UF_PART_load_status_t part_status;
UF_UI_err_t error_handler;
error_handler.type = UF_UI_open_part_fun;
error_handler.fun.open = my_error_handler;
error_handler.fun_data.size = strlen(message) + 1;
error_handler.fun_data.data = message;
UF_UI_open_part(&error_handler, file_name, &use_display_file, &part_tag, &response, &part_status);
if (part_status.statuses != NULL)
{
UF_free(part_status.statuses);
}
if (part_status.file_names != NULL)
{
UF_free_string_array(part_status.n_parts,
part_status.file_names);
}
*/
//文本选择对话框
char prompt_string[256] = "选择要打开的文件";
char title_string[256]="文件选择对话框";
char filter_string[256]=".prt";//要打开的类型可以选择多种打开类型如.txt .part,上边两种只是.prt文件
char default_name[256]="xxx.prt";//显示默认文件名
char filename[256];///*输出完整的路径*/
int response = 0;
UF_UI_create_filebox(prompt_string, title_string, filter_string, default_name, filename, &response);
uc1601(filename, 1); //进行弹出对话框进行打印filename
UF_terminate();