CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2018 开发者帮助

从属性扩展模板类派生

2024-5-18 16:58| 发布者: admin| 查看: 124| 评论: 0|原作者: admin|来自: AutoCAD

从属性扩展模板类派生

为了减少实现工作量,从接口派生 COM 包装类通常是有意义的。从此接口派生提供 、 和 接口的“样板”实现。使用通过宏提供的信息来实现这些接口。IOPMPropertyExtensionImplIOPMPropertyExtensionICategorizePropertiesIPerPropertyBrowsing IOPMPropertyExtensionImplOPMPROP_MAP

在 opmimp.h 文件中声明了以下宏:OPMPROP_MAP

  • BEGIN_OPMPROP_MAP
  • OPMPROP_ENTRY
  • OPMPROP_CAT_ENTRY
  • OPMPROP_DESC_ENTRY
  • OPMPROP_PREDEFINED_ENTRY
  • OPMPROP_ELEMENT_ENTRY
  • OPMPROP_PAGE

这些宏接受以下部分或全部参数:

nDesID

属性的说明字符串 ID

DPID的

该物业的DISPID

CTID公司

属性的类别 ID,该 ID 在应用程序的字符串表资源中定义,由ICategorizeProperties::MapPropertyToCategory()

ctNameID

属性的类别名称字符串

元素ID

展开的属性名称列表(分号分隔),由IOPMPropertyExpander::GetElementStrings()

这些字符串允许单个属性扩展为多个子属性。例如,轻量级折线的折点扩展为两个值:X 和 Y。在这种情况下,展开的属性名称列表将为“顶点 X;顶点 Y“。为可展开属性提供的字符串数应与参数中指定的数目匹配。grp

predefID

属性的预定义字符串列表(分号分隔)的 ID,由IPerPropertyBrowsing::GetPredefinedStrings()

此列表指定单个属性的可能字符串值。这些字符串显示在下拉列表中。例如,如果此值引用的字符串为“Yes;“否”、“是”和“否”值显示在下拉列表中。用户只能从列表中选择一个。

瓦尔斯

属性的预定义值列表(分号分隔),由IPerPropertyBrowsing::GetPredefinedValues()

这些数值对应于预定义字符串列表中的每个字符串。例如,如果为“是;否“,此值为”1;0“,则”Yes“的值为 1,”No“的值为 0。在“属性”选项板中选择“是”或“否”时,COM 包装器的方法将分别接收值 1 或 0。predefIDput_xxx()

若要声明枚举属性控件,应设置为以分号分隔的字符串符号列表的 ID,并设置为分配给相应符号的值的分号分隔列表。以下示例使用字符串表资源 ID IDS_ENUMSTRINGS,该 ID 已设置为字符串“One;Two“在项目的字符串表中:predefIDvalspredefID

OPMPROP_ENTRY(IDS_EnumTest, 7, PROPCAT_Test,
    IDS_CAT_NAME_Test, 0, IDS_ENUMSTRINGS,
    _ACRX_T("1;2"), 0, 1, IID_NULL, IID_NULL, "")

当用户编辑枚举测试属性时,下拉列表将包含“One”和“Two”,它们会将属性分别设置为 1 或 2。

玻璃钢

展开属性名称分组中的元素数,由IOPMPropertyExpander::GetElementGrouping()

此数字应等于字符串列表中指定的字符串数。例如,对于 3D 点,此值为 3,因为单个点有 X、Y 和 Z 值。对于 2D 点,它是 2。elementsID

编辑

Show-property 覆盖,指定属性是可编辑的还是只读的

其他

CLSID 用于其他...组合项对话框(未使用)

CLSID公司

对话框的 CLSIDIPerPropertyBrowsing

控制单击省略号按钮时显示的对话框。使用“属性页”的属性示例包括填充图案名称属性和超链接属性。

椭圆Txt

对话框的显示字符串IPerPropertyBrowsing

此字符串与“属性页”的省略号按钮一起显示。例如,选择填充对象时的“ANSI31”填充图案名称属性。

如果需要使用接口,还提供了模板类。这可以与模板类结合使用,模板类仅实现 and 接口。IAcPiCategorizePropertiesIAcPiCategorizePropertiesImplIOPMPropertyExtensionImpl2IOPMPropertyExtensionIPerPropertyBrowsing

父主题:

  1. 增强属性显示

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1   苏公网安备32011402011833)

GMT+8, 2025-3-14 05:46

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部