CREO Toolkit二次开发-使用钩子的方式实现Unicode下非模态对话框控件中文输入
使用MFC进行二次开发最大的问题就在于编码。使用的GB2312的编码虽然能保证常规的控件中文输入争取,但一些第三方控件或者新版MFC控件如ProPertyGrid等控件在GB2312中反而也会产生乱码。前文CREO Toolkit二次开发-UNICODE下非模态对话框控件中文输入提供了一种方法,但是存在如果在输入过程中弹出对话框会导致程序无法响应的严重Bug。本文尝试使用钩子的方式重新解决这个问题。
使用MFC进行二次开发最大的问题就在于编码。使用的GB2312的编码虽然能保证常规的控件中文输入争取,但一些第三方控件或者新版MFC控件如ProPertyGrid等控件在GB2312中反而也会产生乱码。前文CREO Toolkit二次开发-UNICODE下非模态对话框控件中文输入提供了一种方法,但是存在如果在输入过程中弹出对话框会导致程序无法响应的严重Bug。本文尝试使用钩子的方式重新解决这个问题。
快速隐藏/反向隐藏装配体中的组件主要通过Creo简化表示的方式实现。
简化表示由ProSimprep
结构体进行描述,其类型为pro_model_item
,与ProFeature
、ProGeomitem
等一样。简化表示中信息则由ProSimprepdata
结构体进行表述,其中deflt
为ProSimprepActionType
类型,表示组件默认的简化显示方式。对组件的简化操作由ProSimprepAction
结构体表示,不仅记录组件的简化表示方式,同时还记录了组件在装配体中的ID等信息。创建简化显示流程如下图所示。
一般来说,Toolkit的注册文件需要根据程序存储的位置调整,自己开发当然随便手动修改没有问题,但是如果要正式发布的话,为了操作的友好还是需要能够根据安装位置自动生成注册文件。一个典型的注册文件如下所示:
对于大型系统来说,一般使用日志文件用于处理历史数据、诊断问题的追踪以及理解系统的活动。Creo使用轨迹文件记录所有的操作,当然也给Toolkit二次开发写入轨迹文件提供了接口,可以向轨迹文件写入一些关键信息。
写入轨迹文件使用ProTrailfileCommentWrite
函数,参数为需要写入信息的wchar_t字符串,实例代码如下:
批量打开当前工作目录下的所有文件在weblink中已经开发过了,思路是使用ProFilesList
函数先获目录下对应的所有文件,之后打开对应的文件即可。但是Creo一次打开窗口的个数是有限制的,所以需要注意不要在包含大量文件的工作目录下执行次操作。给出关键代码:
消息文件为于菜单、以及一些提示信息提供文本内容。需要注意的是,消息文件要使用UTF-8 with BOM编码才能正确显示中文。本文介绍消息文件的组成及如何使用消息文件读取、显示消息。