论坛首页>>ProE二次开发>>ProToolkit>>ProE二次开发 Creo二次开发 菜单 ...

1首页上一页1下一页尾页
mcadex
等级:普通会员
头衔: 管理员
星数:
帖数:33
精华:7
积分:16
消息:
  查看资料
发布于:2014-12-16 21:08
字体大小: 1#

ProE二次开发 Creo二次开发 菜单创建

请关注MCADEx官网:www.mcadex.com

QQ:910361522


CreoToolkit交互主要通过菜单和Tab按钮实现.其中菜单需要两部分组成:1.菜单资源文件;2.菜单创建代码


菜单资源文件

在源码文件夹下创建text文件夹,特别强调,此文件夹名称必须为text,text文件夹内创建不同语言资源文件夹, chinese_cn为简体中文资源文件夹, chinese_tw为繁体资源文件夹, usascii为英文资源文件夹.



Creo可根据系统环境加载不同语言的资源文件.当前以简体中文系统加以说明.

chinese_cn中创建名称为CreoTKMenu.txt的文本文件


打开CreoTKMenu.txt,编辑内容如下


菜单资源文件格式为4行一组,每组的第一行为ID,第二行为本地语言显示内容,第三、四行为英文的”#”

菜单创建代码

实现步骤

打开”CreoTk.cpp”文件


CreoTk.cpp文件的最后面,编辑如下代码


uiCmdAccessState UsrActiveButton ( uiCmdAccessMode access_mode )为控制菜单按钮有效性的函数,返回值有以下几种类型

ACCESS_REMOVE 移除菜单按钮,菜单按钮及关联将不可显示

ACCESS_INVISIBLE不可见菜单按钮, 菜单按钮将不可显示

ACCESS_UNAVAILABLE禁止菜单按钮,菜单按钮变灰,不可用

ACCESS_DISALLOW不可用菜单按钮,菜单按钮可用,但不执行动作函数

ACCESS_AVAILABLE激活菜单按钮,菜单按钮可用,可执行动作函数



void UsrActionCreoTk()为菜单按钮的动作函数,我们期望执行的命令就放到该函数内


extern "C" int user_initialize(int argc,char *argv[])为Creo调用程序时的接口函数,Creo调用TK时会识别此函数

ProMenubarMenuAdd为菜单栏添加函数


ProCmdActionAdd菜单按钮动作函数设置

ProMenubarmenuPushbuttonAdd添加菜单按钮


extern "C"  void user_terminate()为Creo退出程序时的接口函数,扫尾工作将在这里处理


实现代码:

#include "ProToolkit.h"

#include "ProMenu.h"

#include "ProMenuBar.h"

#include "ProUtil.h"

//指定菜单按钮的有效性

uiCmdAccessState UsrActiveButton ( uiCmdAccessMode access_mode )

{

    return ACCESS_AVAILABLE;

}

//菜单按钮动作函数

void UsrActionCreoTk()

{

    AFX_MANAGE_STATE(AfxGetStaticModuleState());

}

extern "C" int user_initialize(int argc,char *argv[])

{

    ProError err;


    //指定菜单资源文件名称,Creo会自动找到位于text文件夹中对应语言文件夹下的资源文件

    ProFileName pMenuFileName;

    ProStringToWstring(pMenuFileName, "CreoTKMenu.txt");


    //添加菜单栏

    //CreoTKMenubarID为菜单栏ID, CreoTKMenubar为菜单资源ID,

    //Help表示邻近菜单栏的ID, PRO_B_TRUE表示放在Help的后面,反之放在Help的前面

    err = ProMenubarMenuAdd("CreoTKMenubarID", "CreoTKMenubar", "Help", PRO_B_TRUE, pMenuFileName);

    if (err != PRO_TK_NO_ERROR)

        return err;


    //定义菜单按钮动作函数

    //ActionIdCreoTKMenuBtn为动作名称,UsrActionCreoTk为动作函数,uiProeImmediate为优先权设置

    //UsrActiveButton设置菜单按钮的有效性,两个PRO_B_TRUE是用来设置某些状态窗口是否可用,设置为PRO_B_TRUE即可

    //uiCmdCmdIdCreoTKMenuBtn动作ID是动作函数与菜单资源之间的连接

    uiCmdCmdId  uiCmdCmdIdCreoTKMenuBtn;

    err = ProCmdActionAdd("ActionIdCreoTKMenuBtn",(uiCmdCmdActFn)UsrActionCreoTk, uiProeImmediate, UsrActiveButton ,PRO_B_TRUE, PRO_B_TRUE, &uiCmdCmdIdCreoTKMenuBtn);

    //定义菜单按钮显示内容

    //CreoTKMenubarID表示该菜单按钮挂在CreoTKMenubarID之下

    //CreoTKMenuBtnID为此菜单按钮的ID,CreoTKMenuBtn为此菜单按钮显示内容的资源ID,CreoTKMenuBtnHelp为此菜单按钮的帮助说明资源ID

    //NULL用来定义邻近按钮,若放在最后面直接NULL即可,PRO_B_TRUE表示放在邻近菜单按钮后面,否则放在前面

    err = ProMenubarmenuPushbuttonAdd("CreoTKMenubarID", "CreoTKMenuBtnID", "CreoTKMenuBtn" , "CreoTKMenuBtnHelp", NULL, PRO_B_TRUE, uiCmdCmdIdCreoTKMenuBtn, pMenuFileName);


    return PRO_TK_NO_ERROR;

}

extern "C"  void user_terminate()

{


}

Tab制作方法

Tab按钮制作之前需要先将TK程序加载运行,加载方法见后面的《注册程序》介绍。

程序成功加载运行后,选择文件->选项


选中自定义功能区,从下列位置选取命令中选择”TOOLKIT”命令,此时会自动显示出新建的菜单按钮名称

通过新建选项卡等按钮可创建编辑选项卡、组等,并可将菜单按钮拖入

设计完毕后,导出界面文件到CreoTk程序的text文件夹中


将导出的文件改名为toolkitribbonui.rbn

启动Creo并加载CreoTK可看到效果如下:


IP 属地:北京
相关帖子
收藏 顶 1 踩 0
0
1首页上一页1下一页尾页

扫一扫关注公众号

技术支持: 建站ABC | 管理登录
×
seo seo

消息内容

×
消息长度最多可添加100个汉字或者200个字母

回复内容

×

编辑回复内容

×