当前位置: 首页 > article >正文

【TG\SE二次开发】天工CAD二次开发-c++模板介绍

VS的安装的环境

1. Visual Studio EnterPrise 2022版本

2. 涉及到的工作负荷: 使用C++的桌面开发、通用Windows平台开发

3. 特别要求的单个组件:

适用于最新的v143生成工具的C++ATL(x86和x64)组件、适用于最新的v143生成工具的C++MFC(x86和x64)组件

环境配置:

1. 下载天工CAD(模板会依赖天工CAD的一些文件,这些文件会在安装的过程中进行配置)

        下载网址:https://www.newdimchina.com/

2. VSIX插件模板的安装 具体安装步骤: 完成之后,需要重启VS

3. 创建模板项目 语言选择C++,选择“TGAddinTemplate”模板,“下一步”,修改项目名,“创建”,弹出向导,点击“完成”

4. 修改模板项目的调试参数 项目文件右键->属性->调试->命令。设置为天工CAD的配置路径。

5. 编译、启动程序 在编译中会存在一些报错的问题,确保天工环境的安装后,可以不需要管这些编译的报错问题

6. 调试 设置断点,启动程序,当前断点属于可执行状态,则环境配置成功,可进行业务代码的编辑。环境配置失败,可以检查一下 启动的天工CAD以及注册表, 检查该Dll是否注册。

代码框架:

作用简介:

1. TGCore:入口

2. TGUIManager Ribbon菜单UI管理类,负责创建Ribbon菜单。

3. TGCmdManager Cmd命令管理类,负责命令的注册和分发调度以及对话框的管理。

4. TGEventManager Event事件管理类,用于响应操作所产生的事件的处理,比如 命令按钮点击、文档切换等等。

5. TGHelper Help类,一些辅助接口的封装

业务流程可以分成三部分:

• Ribbon菜单的创建 用户根据UI设计的Menu去完成Ribbon命令菜单的 创建

• 业务功能部分 业务功能部分即处理Ribbon菜单中的每个命令的 实现,根据用户命令依次完成命令创建、功能实 现、命令调度、消息事件的处理、命令注册的操 作。

• 消息事件的处理 可以处理一些命令响应、文档事件等等

Ribbon菜单的设计

Ribbon菜单(位置:当前项目//res//XXXRibbon.xml),xml格式说明如下

<tab name="">

        <group name="">

                <button commandId="" label="" imageId="" buttonStyle=""/>

        </group>

</tab>

关键字说明:

• tab:插件名称

• group:用户自定义的分组名称

• commandId:自定义命令ID,必须唯一

• label:命令显示的名称

• imageId:按钮位图资源ID

• buttonStyle:按钮风格

buttonStyle类型:

1. seButtonAutomatic (值为1): 表示按钮的样式是自 动决定的,通常这意味着UI框架会根据上下文和 平台偏好自动选择合适的样式。

2. seButtonCaption (值为2): 这种样式只有按钮的文 字标题,没有图标。

3. seButtonIcon (值为3): 这种样式只有按钮的图标, 没有文字标题。

4. seButtonIconAndCaption (值为4): 这种样式同时 包含按钮的图标和文字标题,它们通常并排显示。

5. seButtonIconAndCaptionBelow (值为5): 与 seButtonIconAndCaption类似,但图标位于上方, 文字标题位于下方。

6. seCheckButton (值为6): 这表示复选按钮,用户 可以选中或取消选中它。

7. seCheckButtonAndIcon (值为7): 结合了复选按钮 和图标的样式,可能用于提供更直观的视觉反馈。

8. seRadioButton (值为8): 这表示单选按钮,用户 只能在一组中选择一个。

创建命令

一般业务命令格式分成三种,分别是弹框式界面命令侧边栏式界面命令直接操作命令

分别是TGCmdPopup、TGCmdEdgebar以及TGCmdBase。

业务的实现主要是命令按钮的功能实现。 创建命令的具体步骤可以分成四部分:

1. 根据命令类型,创建命令类

2. 实现业务功能

3. 命令激活时调度功能接口

4. 实现消息响应

5. 注册命令,通过命令ID完成绑定


http://www.kler.cn/a/459999.html

相关文章:

  • 关于 PPPOE技术的详细解释
  • 【Redis】集群配置(主从复制 哨兵搭建)
  • MLP、CNN、Transformer 的区别解析
  • 2025差旅平台推荐:一体化降本30%
  • 【网络安全 | 漏洞挖掘】硬编码凭据泄露实现支付系统账户接管
  • 矩阵运算提速——玩转opencv::Mat
  • UniApp 路由导航详解
  • 【数据结构】非线性数据结构——图
  • Oracle复合索引规则指南
  • 大模型Weekly 03|OpenAI o3发布;DeepSeek-V3上线即开源!
  • 【Linux知识】exec命令行详解
  • 关于 覆铜与导线之间间距较小需要增加间距 的解决方法
  • MATLAB语言的计算机基础
  • 自学记录HarmonyOS Next Image API 13:图像处理与传输的开发实践
  • 大数据研究方向有哪些创新点
  • Go中的逃逸分析
  • JS async await fetch 捕获后端500错误详细信息
  • Visual Studio 中增加的AI功能
  • 【文献精读笔记】Explainability for Large Language Models: A Survey (大语言模型的可解释性综述)(一)
  • JS中Symbol (符号)数据类型详解和应用场景
  • Gemma2 2B 模型的model.safetensors.index.json文件解析
  • win版ffmpeg的安装和操作
  • 基于问卷调查数据的多元统计数据分析与预测(因子分析、对应分析与逻辑回归)
  • Docker搭建RocketMQ
  • 基于源码剖析:深度解读JVM底层运行机制
  • CPT203 Software Engineering 软件工程 Pt.2 敏捷方法和需求工程(中英双语)