在软件开发中,ActiveX控件提供了一种强大的方式来扩展应用程序的功能。本文将介绍一个特定的ActiveX 控件——kPropertySet.kObserver,它允许用户以类似于Visual Basic IDE的属性浏览器方式来展示和编辑属性集。
kPropertySet.kObserver 主要特性
kPropertySet.kObserver控件的主要特点包括:
- 通过 IDispatch 接口编辑属性集。
- 与 IPerPropertyBrowsing 和 ICategorizeProperties 接口兼容。
- 支持与OLE自动化兼容的任何类型的属性。
- 支持用户自定义类型。
- 支持按字母顺序和类别排序。
- 灵活的定制选项。
- 体积小:在发布最小尺寸配置中只有73.5 KB。
工作原理
控件在接收到 IDispatch 接口的指针后,会探索类型库。对于每个带有 "propget" 属性的属性,都有一个对象实现了可视化、数据交换和数据验证的逻辑。带有 "hidden"、"nonbrowsable" 和 "restricted" 属性的属性将被跳过。
控制接口
以下是 kObserver 接口的描述:
- Property Dispatch: 外部分派接口。
- Property Font: 当前字体。
- Property BackColor: 列表视图窗口的背景颜色。
- Property ForeColor: 用于显示文本的前景颜色。
- Property GridColor: 用于显示网格的颜色。
- Property HighliteBackColor: 用于显示选中项的背景颜色。
- Property HighliteForeColor: 用于显示选中项文本的颜色。
- Property EditBackColor: 用于显示编辑窗口的背景颜色。
- Property EditForeColor: 用于显示编辑窗口文本的前景颜色。
- Property SignColor: 符号颜色。
- Property EnableContextMenu: 如果不需要显示上下文菜单,则必须为 false。
- Property Categorized: 排序模式,如果按类别排序则为 true。
- Property LineSpacing: 行之间的额外间距,可以为负。
- Property exStyleEdit: 编辑窗口的扩展窗口样式。
- Property SelectName: 活动属性的名称。
- Property SelectDesc: 活动属性的描述。
- Property SelectValue: 活动属性的值。
- Property SelectDispid: 活动属性的 DISPID。
源接口
方法 OnChangeSelect: 当用户更改活动属性时触发。
键盘快捷键:
- F5: 刷新
- F2, Tab: 编辑属性(如果可能)
- 空格键: 模拟右键单击
上下文菜单:
- 按字母顺序 / 按类别:选择排序模式
- 还原 / 自定义:编辑自身属性或外部属性
- 刷新:重新绘制并重新加载属性值
开发环境
此组件使用 VC 6.0 (SP3) 和 ATL 创建。已在 Windows 2000 和 Windows 98 上测试。需要:Windows 98, Windows NT 4.0, Windows 2000, 和 Internet Explorer 4。
编写此ActiveX控件时使用了以下源代码:
- Vladimir Scherbakov: "实现属性浏览器的模板类"
- Stefan Belopotocan: "可适应属性列表控件"
- Andrew Nosenko: "ATL/AUX 库"
再次感谢他们。