IOleInPlaceObject::SetObjectRects 方法 (oleidl.h)

指定要可见的就地对象的数量。

语法

HRESULT SetObjectRects(
  [in] LPCRECT lprcPosRect,
  [in] LPCRECT lprcClipRect
);

参数

[in] lprcPosRect

指向 RECT 结构的指针,其中包含使用其父窗口的客户端坐标的就地对象的位置。

[in] lprcClipRect

指向包含就地对象位置矩形 (lprcPosRect) 的外部矩形的指针。 该矩形相对于此对象的父窗口的工作区。

返回值

此方法在成功时返回S_OK。 其他可能的返回值包括以下内容。

返回代码 说明
E_INVALIDARG
指定的指针无效。
E_OUTOFMEMORY
可用于操作的内存不足。
E_UNEXPECTED
发生意外错误。

注解

lprcClipRect 可以在不更改 lprcPosRect 的情况下进行更改。

就地对象的矩形大小始终以像素为单位计算。 这不同于 HIMETRIC 中其他 OLE 对象的可视化效果。

注意 在执行 IOleInPlaceObject::SetObjectRects 时,不要调用 PeekMessageGetMessage 函数或对话框。 这样做可能会导致系统死锁。 从 IOleInPlaceObject::SetObjectRects 中调用 OLE 接口方法和函数还有进一步的限制。
 

给调用方的说明

每当就地对象的窗口位置和/或就地对象的可见部分发生更改时,容器都应调用 IOleInPlaceObject::SetObjectRects

实施者说明

对象必须调整其就地窗口的大小,以匹配 lprcPosRectlprcClipRect 的交集。 对象还必须将其内容绘制到对象的就地窗口中,以便进行适当的剪辑。

对象应将其宽度和高度与其容器提供的宽度和高度进行比较, (通过 lprcPosRect) 传递。 如果比较不会导致匹配,则容器将缩放应用于 对象。 然后,对象必须决定是应在缩放/缩放模式下继续就地编辑,还是停用。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 oleidl.h

另请参阅

GetMessage

IOleInPlaceObject

IOleInPlaceSite::OnPosRectChange

PeekMessage