65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 OLE 自动化设置属性

starIconstarIconstarIconstarIconstarIcon

5.00/5 (4投票s)

2000 年 6 月 3 日

viewsIcon

104030

downloadIcon

2361

描述一个使用 OLE 自动化设置对象属性的 ActiveX 控件。

  • 下载演示项目 - 113 Kb
  • 下载源文件 - 114 Kb
  • Sample Image - PropertySetCtl.jpg

    目录。

    1. 引言
    2. 工作原理
    3. 控件接口
    4. 源接口
    5. 用户界面
    6. 环境
    7. 致谢,参考文献
    8. 关于 VB 演示的一些说明

    引言

    kPropertySet.kObserver - 这个 ActiveX 控件提供了一种呈现和编辑属性集(类似于 Visual Basic IDE 的属性浏览器)的方法。

    主要功能包括

    1. 通过 IDispatch 接口编辑属性集。
    2. IPerPropertyBrowsingICategorizeProperties 接口一起使用
    3. 支持任何与 OLE 自动化兼容的属性类型
    4. 支持用户自定义类型
    5. 按字母顺序和类别排序
    6. 灵活的自定义
    7. 体积小:发布最小尺寸配置下为 73.5 KB

    工作原理

    IDispatch 接口接收指针后,控件会浏览类型库。 对于具有“propget”属性的每个属性,都有一个实现可视化、数据交换和数据验证逻辑的对象。 具有“hidden”、“nonbrowsable”和“restricted”属性的属性将被跳过。


    控件接口

    以下是对 kObserver 接口的描述

    属性 Dispatch
    外部调度接口。

    属性 Font
    当前字体。

    属性 BackColor
    列表视图窗口的背景颜色。

    属性 ForeColor
    用于显示文本的前景色。

    属性 GridColor
    用于显示网格的颜色。

    属性 HighliteBackColor
    用于显示选中项目的颜色。

    属性 HighliteForeColor
    用于显示选中项目文本的颜色。

    属性 EditBackColor
    用于显示编辑窗口的背景颜色。

    属性 EditForeColor
    用于在编辑窗口中显示文本的前景色。

    属性 SignColor
    符号颜色。

    属性 EnableContextMenu
    如果不需要显示上下文菜单,则必须为 false。

    属性 Categorized
    排序模式,如果按类别排序,则为 true。

    属性 LineSpacing
    行之间的附加间距可以是负数。

    属性 exStyleEdit
    编辑窗口的扩展窗口样式。

    属性 SelectName
    活动属性的名称。

    属性 SelectDesc
    活动属性的描述。

    属性 SelectValue
    活动属性的值。

    属性 SelectDispid
    活动属性的 DISPID。


    源接口

    方法 OnChangeSelect
    当用户更改活动属性时发生。


    用户界面

    键盘按键

    • F5:刷新
    • F2,Tab:编辑属性(如果可能)
    • 空格:模拟右键单击

    上下文菜单

    • 字母顺序 \ 分类:选择排序模式
    • 恢复 \ 自定义自身:编辑自身属性或外部属性
    • 刷新:重新绘制并重新加载属性值

    环境

    此组件是用 VC 6.0 (SP3) 和 ATL 创建的。 它已在 Windows 2000 和 Windows 98 上进行了测试。 需要:Windows 98、Windows NT 4.0、Windows 2000 和 Interned Explorer 4。


    致谢,参考文献

    以下源代码用于编写此 ActiveX 控件

    再次感谢他们。

    关于 VB 演示的一些说明

    为了在 VB 运行时持久化 \ 恢复属性,我编写了 kPersistMngs.kStorageMng 组件。 这是一个使用 VB 中复合文件的简单包装器。

    历史

    • 2000 年 8 月 6 日 - 更新到版本 1.2 并修复了 Robert Rolls 检测到的错误
    © . All rights reserved.