logo资料库

UG插件开发说明(UIStyler).pdf

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
1、 新建一个插件开发目录,如 UGStyler。在该文件夹下新建两个文件夹,分别命名为startup 和 application。 2、 找 到 UG 安 装目录 下 UGII 文 件 夹里 的 ugii_env.dat 文 件 , 其中有 条 语句 : #UGII_USER_DIR=${HOME}将前面的#号删除,并将${HOME}替换为UGStyler的路径。 如 UGII_USER_DIR= E:\UG\UGStyler。 //定义第一级菜单,它是下拉菜单 //定义该菜单标题 //结束第一级菜单编辑 //编辑第二级菜单,是 MENU_ID_1 的下拉菜单 //定义第二级菜单,它不是下拉菜单,而是按钮 //定义菜单标题 //定义按钮菜单的响应动作,即运行UIStyler对话框(test_UG.dlg) //结束第二级菜单的编辑 3、 菜单栏开发:新建一个.men 文件,如 test.men,文件语法如下: VERSION 120 EDIT UG_GATEWAY_MAIN_MENUBAR //编辑 UG 主菜单 BEFORE UG_HELP // 在帮助菜单的前面 CASCADE_BUTTON MENU_ID_1 LABEL PDM END_OF_BEFORE MENU MENU_ID_1 BUTTON UG_PDM LABEL 提取信息 ACTIONS test_UG.dlg END_OF_MENU 注:UIStyler 对话框的开发将稍后介绍。 4、 工具栏开发:新建一个.tbr 文件,如 test.tbr,文件语法如下: TITLE PDM 应用 VERSION 170 DOCK TOP BUTTON UG_PDM LABEL 提取 UG 信息 BITMAP ug_pdm.bmp 5、 UIStyler 对话框的开发 选择起始——用户界面样式编辑器,如下图所示 //定义工具标题 //在上部工具栏显示 //按钮,对应.men 文件中的按钮名 //定义按钮标题 //对应显示图片 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn
可定义对话框的相关属性,包括标题以及选用按钮等。并可为对话框添加整型、字符型输入 框等控件。 点击“回叫”,即可为按钮添加响应事件,如下图所示,输入回叫函数名即可自动生成回叫 函数: 点击保存,会在保存目录下找到三个文件:*****.dlg, *****_template.c, *****.h 6、 生成启动时载入的共享库 在 VC++里新建一个空的 Win32 Dynamic-Link Libray 项目。 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn
UF_STYLER_item_value_type_t data; // 用以查询控件属性 char fname[256 + 1]; char saveDir[256 + 1]; char* key; char message[UF_UI_MAX_STRING_LEN + 1]; return ( UF_UI_CB_CONTINUE_DIALOG ); 将*****_template.c 文件以及*****.h 文件加入项目中。可在回调函数中添加事件。如下: int CHANGE_ok_cb ( int dialog_id, void * client_data, UF_STYLER_item_value_type_p_t callback_data) { tag_t disPart = UF_PART_ask_display_part(); UF_PART_ask_part_name(disPart, fname); /* Make sure User Function is available. */ if ( UF_initialize() != 0) /* ---- Enter your callback code here ----- */ data.item_attr = UF_STYLER_VALUE; //定位查询属性类型,即为查询控件的值 data.item_id = CHANGE_STR_0; // 定位查询属性 ID,即为字符串输入栏 UF_STYLER_ask_value(dialog_id, &data); // 获得控件值 key = data.value.string; if(GetInfor(key,saveDir)) PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn
//显示提示消息 sprintf(message,"UG 信息提取有误"); sprintf(message,"txt 文件已保存至:\n\n%s",saveDir); else uc1601(message,1); /* Callback acknowledged, terminate dialog */ /* It is STRONGLY recommended that you exit your */ /* callback with UF_UI_CB_EXIT_DIALOG in a ok callback.*/ /* return ( UF_UI_CB_EXIT_DIALOG ); */ return ( UF_UI_CB_EXIT_DIALOG ); } l 找到程序中“#ifdef MENUBAR_COMMENTED_OUT”及其配对的“endif”并删除。 l 找到程序中“#ifdef DISPLAY_FROM_USER_EXIT”及其配对的“endif”并删除。注意不要 UF_terminate (); 删除这两项里面的程序。 l 在将刚才“#ifdef DISPLAY_FROM_USER_EXIT”下的语句中的“”改为 ufusr。 在该项目中,也可调用功能扩展程序文件(如:extern.dll)调用方式同其他。 编译项目生成*****.dll 文件。 7、 将.men 文件、.tbr 文件、*****.dll 文件(其中有 ufsta()函数作为入口)、extern.dll(功能 扩展程序文件)放在 startup 文件夹下。 将*****.dlg 文件,图片文件(如 pdm.bmp)放在 application 文件夹下。 插件开发完毕。打开 UG,便会有新加的菜单和工具。 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.cn
分享到:
收藏