在 .NET Compact Framework 2.0 中宿主 ActiveX 控件(三)

翻译|其它|编辑:郝浩|2006-06-23 16:57:00.000|阅读 2170 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

表 2 到 7 描述在容器支持的接口中存在的方法。

表 2. IOleClientSite 接口中的方法
IOleClientSite 方法说明注意

SaveObject

保存嵌入对象

忽略该方法,因为容器不支持控件持久性。

GetMoniker

请求对象的名字对象

不支持该方法。其实现是独立的,不会向外部客户端提供任何 COM 接口。

GetContainer

请求指向对象容器的指针

支持该方法。

ShowObject

让容器显示对象

支持该方法。

OnShowWindow

通知容器,对象何时可见或不可见

忽略该方法。

RequestNewObjectLayout

让容器调整显示站点的大小

不支持该方法。

表 3. IOleWindow 接口中的方法
IOleWindow 方法说明注释

GetWindow

获得窗口句柄

支持该方法。

ContextSensitiveHelp

控制对上下文敏感帮助的启用

忽略该方法。容器不实现帮助支持。

表 4. IOleInPlaceSite 接口中的方法
IOleInPlaceSite 方法说明注释

CanInPlaceActivate

确定容器是否可以就地激活对象

该方法返回 true

OnInPlaceActivate

通知容器正在就地激活它的一个对象

使用该方法激活对象。

OnUIActivate

通知容器,将就地激活对象,主菜单将由复合菜单替换

支持该方法。

GetWindowContext

使就绪对象能够检索构成窗口对象层次结构的窗口接口,以及对象的就地激活窗口应该放置的父窗口中的位置

支持该方法。

Scroll

指定容器要滚动对象的像素数

不支持该方法。

OnUIDeactivate

通知容器重新安装其用户界面并获得焦点

支持该方法。

OnInPlaceDeactivate

通知容器不再就地激活对象

支持该方法。

DiscardUndoState

指导容器放弃其撤消状态

忽略该方法。容器将不会跟踪撤消状态。

DeactivateAndUndo

停用对象,并将其恢复为撤消状态

忽略该方法。容器将不会跟踪撤消状态

OnPosRectChange

通知容器,对象的范围已更改

支持该方法。

表 5. IOleControlSite 接口中的方法
IOleControlSite 方法说明注释

OnControlInfoChanged

通知容器,控件的 CONTROLINFO 结构已经更改,容器应该调用控件的 IOleControl::GetControlInfo 方法进行更新

忽略该方法,因为容器没有键盘支持。如果容器支持键盘操作,您可能已经从 CONTROLINFO 结构中抽取键盘快捷键表。

LockInPlaceActive

指示该控件是否应该保持就地激活,而不考虑可能的停用事件

不支持该方法。

GetExtendedControl

请求一个指向扩展控件的 IDispatch 指针,容器使用该控件包装实际的控件

忽略该方法。它始终返回 NULL,因为您不会使用调度接口与容器通信。

TransformCoords

在用 HIMETRIC 单位(它是对象链接与嵌入 [OLE] 中的标准)表示的 POINTL 结构和用容器指定的单位表示的 POINTF 结构之间进行转换

忽略该方法。该容器仅支持 MM_TEXT。

TranslateAccelerator

指导容器处理指定的击键

支持该方法。

OnFocus

指示该控件站点中的嵌入式控件是获得了还是丢失了焦点

忽略该方法。

ShowPropertyFrame

指导容器为该站点中嵌入的控件显示属性表

不支持该方法。

表 6. IOleInPlaceUIWindow 接口中的方法
IOleInPlaceUIWindow 方法说明注释

GetBorder

返回一个 RECT 结构,对象可以在就地激活时将工具栏和类似的控件放在其中

不支持该方法。其实现没有额外的 UI 元素,即只是控件本身。

RequestBorderSpace

确定在对象就地激活时,是否有可用的空间将工具安装在对象窗口框架的周围

不支持该方法。

SetBorderSpace

为请求的边界分配空间

不支持该方法。

SetActiveObject

提供对象与每个框架和文档窗口之间的直接通信信道

支持该方法。

表 7. IOleInPlaceFrame 接口中的方法
IOleInPlaceFrame 方法说明注释

InsertMenus

允许容器插入菜单

不支持该方法。

SetMenu

向窗口框架添加一个复合菜单

不支持该方法。

RemoveMenus

删除一个容器的菜单元素

不支持该方法。

SetStatusText

设置并显示有关容器框架窗口状态行中就绪对象的状态文本

不支持该方法。

EnableModeless

启用或禁用无模式对话框

不支持该方法。

TranslateAccelerator

转换击键

不支持该方法。

与控件交互

尽管文档声明,可以拥有一个只实现 IUnknown 派生的接口的控件,但实际上控件还可以实现其他一些功能。例如,因为编写 ActiveX 控件的主要目标是让自动化客户端可使用它们,这些自动化客户端如 Microsoft Internet Explorer 和 Microsoft Visual Basic(及其移动设备上的对应产品:eMbedded Visual BasicInternet Explorer Mobile),所以市场上几乎任何一种控件都支持 IDispatch 接口和调度事件接口。如果控件具有某种 UI,它还公开 IOleControlIOleInPlaceObject(带有继承的接口)。

其他控件还支持 IPersistStream 接口和其他 IPersistxxx 接口。这些接口用于填充控件属性的初始值,并且对 Visual Basic 中的设计器支持很有帮助。本文不对该主题进行介绍,因为 Visual Studio 中设计器支持的工作方式完全不同。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP