CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

对属性进行分类

2022-12-31 11:18| 发布者: admin| 查看: 268| 评论: 0|来自: AutoCAD

与接口用于将属性检查器中显示的属性分类 control.is 旧版接口的更新版本。对象可以实现其中之一,但不能同时实现两者。该界面复制了其前身的功能,并添加了以下功能:ICategorizePropertiesIAcPiCategorizePropertiesIAcPiCategorizePropertiesICategorizePropertiesIAcPiCategorizeProperties

  • 支持动态属性
  • 支持嵌套类别
  • 能够在属性检查器网格的类别行中显示命令按钮

使用分类界面是可选的,但强烈建议使用。如果对象未实现这些接口之一,则其所有属性都归类为“常规”。

属性检查器在收集属性信息时会询问对象的方法以获取 anor anpointer 。如果调用成功,属性检查器将使用获取的指针为对象的类型信息定义的每个属性调用该方法。如果返回的类别不是inc\category.h文件中预定义的值之一,则调用该方法以获取自定义类别的显示名称。QueryInterface()ICategorizePropertiesIAcPiCategorizePropertiesQueryInterface()MapPropertyToCategory()GetCategoryName()

如果您计划仅使用预定义的类别,则可以从中返回。您也不需要实现该方法。相反,属性检查器使用 OPM 属性映射中为每个属性指示的类别。此技术用于AsdkSquareWrapper_DG示例项目。如果在属性映射中找不到某个属性,则属性检查器会在“常规”类别下显示该属性。E_NOTIMPLS_FALSEGetCategoryName()MapPropertyToCategory()

要对属性进行分类,您必须知道每个属性。活动模板库 (ATL) 在定义接口的 IDL 文件中分配属性值。这些数字可在属性属性列表的声明中找到,如下所示:DISPIDDISPIDid()

[propget, id(1), helpstring("property Number")] HRESULT Number([out, retval] short *pVal);

在此示例中,对于属性为 1。DISPIDNumber


路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-5-19 13:50

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部