乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 185|回复: 8

在CAD特性面板(OPM)中以中文显示自定义实体属性

[复制链接]

7

主题

13

帖子

1

银币

初来乍到

Rank: 1

铜币
41
发表于 2012-4-17 09:33:00 | 显示全部楼层 |阅读模式
前段时间学习了如何在CAD特性面板(OPM)中显示自定义实体属性,在完成上述功能后,发现原来以中文显示的属性名全部变成了英文,要将显示的属性名改成中文,必须重载IOPMPropertyExtension::GetDisplayName函数。但使用该函数必须要知道CAD内置属性名的DISPID,搜遍整个SDK和全球网页也没找到对应属性的DISPID,最后在一个不知道是哪国的论坛中有一段似乎是改变显示属性字名的代码,报着试试看的想法将其中的DISPID值带入自己的代码中,居然成功了!现发给大家分享。以下是上述论坛的链接: //定义自定义实体属性的DISPID#define DISPID_MyProperty1    0x01  //自定义属性1#define DISPID_MyProperty2    0x02  //自定义属性2 //在.h文件中声明GetDisplayName函数STDMETHOD(GetDisplayName)(/* [in]  */ DISPID dispID, /* [out] */ BSTR* pbstr); //在.cpp文件中添加如下代码STDMETHODIMP CMyProperty::GetDisplayName(DISPID dispID, BSTR* pbstr){     switch (dispID)     {     case (0x401): *pbstr  = ::SysAllocString(_T("自定义实体名称"));         break;     case (0x516):         *pbstr  = ::SysAllocString(_T("颜色"));         break;     case (0x501):         *pbstr  = ::SysAllocString(_T("图层"));         break;     case (0x502):         *pbstr  = ::SysAllocString(_T("线型"));         break;     case (0x503):         *pbstr  = ::SysAllocString(_T("线型比例"));         break;     case (0x513):         *pbstr  = ::SysAllocString(_T("打印样式"));         break;     case (0x514):         *pbstr  = ::SysAllocString(_T("线宽"));         break;     case (0x515):         *pbstr  = ::SysAllocString(_T("超链接"));         break;     case (0x577):         *pbstr  = ::SysAllocString(_T("材质"));         break;      case (0x01):         *pbstr = ::SysAllocString(_T("自定义属性1"));        break;     case (0x02):        *pbstr = ::SysAllocString(_T("自定义属性2"));        break;     default:return AcOpmGetDisplayName(reinterpret_cast[I](this), GetResourceInstance(), GetOPMPropertyMap(), dispID, pbstr);  //默认返回CAD字符串     }     return S_OK;}

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

2

主题

25

帖子

11

银币

初来乍到

Rank: 1

铜币
32
发表于 2012-4-17 13:23:00 | 显示全部楼层
...................
回复

使用道具 举报

20

主题

174

帖子

11

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
265
发表于 2012-4-17 22:37:00 | 显示全部楼层
多谢楼主分享
回复

使用道具 举报

5

主题

88

帖子

9

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
108
发表于 2012-8-6 20:19:00 | 显示全部楼层
很好,正需要这个程序呢,谢谢
回复

使用道具 举报

5

主题

88

帖子

9

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
108
发表于 2012-8-7 10:13:00 | 显示全部楼层
能发一个opm的简单程序给我啊,在帮助里面看的有点困难,谢谢
735023723@qq.com
回复

使用道具 举报

37

主题

161

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
309
发表于 2012-8-7 11:31:00 | 显示全部楼层
看一下,以后再理解
回复

使用道具 举报

5

主题

88

帖子

9

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
108
发表于 2012-8-24 09:02:00 | 显示全部楼层
可以发个简单的这种程序代码给我啊?想做这个呢,可惜没办法
回复

使用道具 举报

11

主题

92

帖子

10

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
135
发表于 2019-6-21 01:19:00 | 显示全部楼层
留爪,以后慢慢来看
回复

使用道具 举报

0

主题

17

帖子

7

银币

初来乍到

Rank: 1

铜币
17
发表于 2020-11-22 12:49:00 | 显示全部楼层
能传授一下这方面的经验吗
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2024-11-22 00:32 , Processed in 0.221470 second(s), 70 queries .

© 2020-2024 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表