IOleInPlaceFrame::SetStatusText 方法 (oleidl.h)
设置并显示容器框架窗口状态行中有关就地对象的状态文本。
语法
HRESULT SetStatusText(
[in] LPCOLESTR pszStatusText
);
参数
[in] pszStatusText
要显示的消息。
返回值
此方法在成功时返回S_OK。 其他可能的返回值包括以下内容。
返回代码 | 说明 |
---|---|
|
显示一些文本,但消息太长,被截断。 |
|
此操作失败。 |
|
指定的指针无效。 |
|
发生了意外错误。 |
注解
调用方备注
需要要求容器在其框架的状态行中显示对象文本(如果有)时,应调用 IOleInPlaceFrame::SetStatusText 。 由于容器的框架窗口拥有状态行,因此调用 IOleInPlaceFrame::SetStatusText 是对象可以在容器的框架窗口中显示状态信息的唯一方法。 但是,如果容器拒绝对象的请求,则对象应用程序可以协商边界空间以显示其自己的状态窗口。在容器拥有的菜单和就地活动对象之间切换时,如果对象不调用容器的 IOleInPlaceFrame::SetStatusText 方法,则状态栏文本不会正确反映。 例如,如果用户在就地会话期间选择“ 文件 ”菜单,则状态栏将反映用户选择此菜单时将发生的操作。 如果用户随后选择由就地对象) 拥有的 “编辑 ”菜单 (,则状态栏文本不会更改,除非恰好调用 了 IOleInPlaceFrame::SetStatusText 。 这是因为容器无法识别对象的菜单之一已激活,因为容器将捕获的所有消息现在都转到对象。
实施者说明
为了避免潜在问题,就地激活的所有对象都应处理 WM_MENUSELECT 消息并调用 IOleInPlaceFrame::SetStatusText,即使对象通常不提供状态信息 (在这种情况下,对象只能) 传递请求的状态文本的 NULL 字符串。注意 在执行 IOleInPlaceFrame::SetStatusText 时,不要调用 PeekMessage 或 GetMessage 函数或对话框。 这样做可能会导致系统死锁。 从 IOleInPlaceUIWindow::GetBorder 中可以调用哪些 OLE 接口方法和函数存在进一步的限制。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | oleidl.h |