MFC曾在Windows桌面开发领域大放异彩,但随着时间的推移,如今相比各种流行的GUI开发技术(QT、WPF、Flutter、Web技术等),MFC被贴上“古老”、“落后”的标签。
但有大量工业软件采用MFC进行开发,且在AutoCAD二次开发领域,MFC是官方指定的ObjectARX界面开发方式,掌握MFC技术具有一定的现实需求。
本文从整体上介绍MFC单文档和多文档应用程序的整体框架。
MFC曾在Windows桌面开发领域大放异彩,但随着时间的推移,如今相比各种流行的GUI开发技术(QT、WPF、Flutter、Web技术等),MFC被贴上“古老”、“落后”的标签。
但有大量工业软件采用MFC进行开发,且在AutoCAD二次开发领域,MFC是官方指定的ObjectARX界面开发方式,掌握MFC技术具有一定的现实需求。
本文从整体上介绍MFC单文档和多文档应用程序的整体框架。
本科期间开发过一款混凝土基本构件设计程序,该程序是一个独立的exe可执行文件,采用VC++静态链接MFC库编制而成。近期,需要为该程序添加用户注册验证的功能,从而避免任何用户获取该程序就能无限制使用的问题。
刚开始,打算在网络上找可直接为单个exe文件添加“一机一码”注册功能的平台软件,但该类软件基本都是付费软件,且生成的加壳程序很容易被杀毒软件误差。好在“一机一码”机制并不复杂,最终决定使用C#编程的方式手动实现该功能。
外部参照在CAD绘图中也扮演着重要角色,设计人员经常将外部图纸作为参照载入当前图纸,用于比对图纸信息或成果组织。
本文针对外部参照,封装加载、卸载、删除、查询接口,卸载接口尤其值得注意。
CAD二次开发中,当需要对图形做某种持久化标记时,就需要用到扩展数据;同时,扩展数据与DXF文件拥有相同的组织方式,在某些情况下可用于修改图形属性。
本文针对扩展数据封装若干常用的二次开发接口。
缩放、旋转和平移是图形的基本变化,从几何算法的角度看是统一的:都是借助变换向量实现。
本文针对这三种基本变换操作封装三个接口。值得注意的是,这三个接口都是针对实体本身,即使实体不存在数据库中也可以使用。