Creo二次开发-UI开发(1)创建会话

2023-12-21 17:08

本文主要是介绍Creo二次开发-UI开发(1)创建会话,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简介

Creo Object Toolkit C++用户手册中提到,Creo3.0 及以上版本中,the Creo UI Editor 可以自己设计 UI 界面,uifc 框架可以在 toolkit 中使用。具体参考 the Creo UI Editor C++用户手册。
上述提到的 UI Editor 为 Creo 自带的 UI 设计软件,和常用的一些 UI 设计工具,如 QT 类似。具体的一些属性参数在 UI Editor 的用户手册中有介绍,但是信息有限。UI Editor 可以保存.res 文件,可以利用该文件在 toolkit 中创建会话。刚开始想做 UI 时,是打算用 QT 的,由于 VS 的版本问题,没能解决在 VS2012 环境下编译 QT 的问题,转而研究 Creo 自带的 UI 设计工具。在 toolkit 中,UI 模块对应的类以 uifc 开头。

uifcDialog

窗体,所有控件的基础。用函数 uifcCreateDialog()创建:

    #define DIALOG_MAPKEYS "Mapkeys"#define DIALOG_MAPKEYS_RES "Mapkeys.res"uifcCreateDialog(DIALOG_MAPKEYS, DIALOG_MAPKEYS_RES);uifcDialog_ptr Dialog1 = uifcDialogFind(DIALOG_MAPKEYS, DIALOG_MAPKEYS);

uifcDialogListener

Dialog 中的监听器。其中 Creo 自带头文件 uifcDefaultListeners.h 中对各监听器接口做了默认实现,如 uifcDialogListener 对应的默认类为 uifcDefaultDialogListener。后面重载成员函数时,只需覆写用到的函数即可。其中常用的如:

  • OnClose (uifcDialog_ptr handle)——窗口关闭
  • OnDisplay (uifcDialog_ptr handle)——窗口显示
  • OnPreDisplay (uifcDialog_ptr handle)——窗口显示前
    Dialog 创建完成后,使用 uifcDialog 的成员函数 AddActionListener()添加监听器,实现对相应动作的响应。
    在最后还需要使用 uifcActivateDialog()激活窗口,uifcDestroyDialog()销毁窗口。一个窗口完整的生命周期为创建、初始化、激活、关闭和销毁。只有当窗口关闭后才会销毁窗口。
class MyMapkeyDialogListener : public uifcDefaultDialogListener
{
public:void OnClose(uifcDialog_ptr handle){uifcExitDialog(handle->GetDialog(), 0);}
};
wfcStatus ShowMapkeys()
{uifcCreateDialog(DIALOG_MAPKEYS, DIALOG_MAPKEYS_RES);uifcDialog_ptr Dialog1 = uifcDialogFind(DIALOG_MAPKEYS, DIALOG_MAPKEYS);Dialog1->AddActionListener(new MyMapkeyDialogListener());uifcActivateDialog(DIALOG_MAPKEYS);uifcDestroyDialog(DIALOG_MAPKEYS);return wfcTK_NO_ERROR;
}

实例 1.1ShowMapkeys

根据自用快捷键创建分布图,通过创建窗口展示分布图,按键切换。
源代码:1.1ShowMapkeys
源代码通过 makefile 编译,VS2012+Creo3.0 编译通过。
内置 Install.exe 自动生成 creotk.dat 文件

这篇关于Creo二次开发-UI开发(1)创建会话的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/520817

相关文章

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

Python创建Excel的4种方式小结

《Python创建Excel的4种方式小结》这篇文章主要为大家详细介绍了Python中创建Excel的4种常见方式,文中的示例代码简洁易懂,具有一定的参考价值,感兴趣的小伙伴可以学习一下... 目录库的安装代码1——pandas代码2——openpyxl代码3——xlsxwriterwww.cppcns.c

使用Python在Excel中创建和取消数据分组

《使用Python在Excel中创建和取消数据分组》Excel中的分组是一种通过添加层级结构将相邻行或列组织在一起的功能,当分组完成后,用户可以通过折叠或展开数据组来简化数据视图,这篇博客将介绍如何使... 目录引言使用工具python在Excel中创建行和列分组Python在Excel中创建嵌套分组Pyt

基于Python开发PPTX压缩工具

《基于Python开发PPTX压缩工具》在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,不便于传输和存储,所以本文将使用Python开发一个PPTX压缩工具,需要的可以了解下... 目录引言全部代码环境准备代码结构代码实现运行结果引言在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,

使用DeepSeek API 结合VSCode提升开发效率

《使用DeepSeekAPI结合VSCode提升开发效率》:本文主要介绍DeepSeekAPI与VisualStudioCode(VSCode)结合使用,以提升软件开发效率,具有一定的参考价值... 目录引言准备工作安装必要的 VSCode 扩展配置 DeepSeek API1. 创建 API 请求文件2.

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时

MySQL分表自动化创建的实现方案

《MySQL分表自动化创建的实现方案》在数据库应用场景中,随着数据量的不断增长,单表存储数据可能会面临性能瓶颈,例如查询、插入、更新等操作的效率会逐渐降低,分表是一种有效的优化策略,它将数据分散存储在... 目录一、项目目的二、实现过程(一)mysql 事件调度器结合存储过程方式1. 开启事件调度器2. 创

mysql外键创建不成功/失效如何处理

《mysql外键创建不成功/失效如何处理》文章介绍了在MySQL5.5.40版本中,创建带有外键约束的`stu`和`grade`表时遇到的问题,发现`grade`表的`id`字段没有随着`studen... 当前mysql版本:SELECT VERSION();结果为:5.5.40。在复习mysql外键约

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element