IOleInPlaceFrame::SetMenu 方法 (oleidl.h)
将复合菜单添加到包含就地激活对象的窗口框架。
HRESULT SetMenu(
[in] HMENU hmenuShared,
[in] HOLEMENU holemenu,
[in] HWND hwndActiveObject
);
[in] hmenuShared
复合菜单的句柄,由调用 IOleInPlaceFrame::InsertMenus 和 InsertMenu 函数构造。
[in] holemenu
OleCreateMenuDescriptor 函数返回的菜单描述符的句柄。
[in] hwndActiveObject
对象拥有的窗口的句柄,以及要向其发送菜单消息、命令和快捷键的句柄。
此方法在成功时返回S_OK。 其他可能的返回值包括以下内容。
返回代码 | 说明 |
---|---|
|
指定的句柄无效。 |
|
发生意外错误。 |
停用时,容器必须调用 IOleInPlaceFrame::SetMenu,指定 NULL 以删除共享菜单。 这样做是为了最大程度地减少窗口重绘。 容器还应调用 OleSetMenuDescriptor,指定 NULL 以取消调用调度代码。 最后,对象应用程序调用 OleDestroyMenuDescriptor 来释放数据结构。
注意 执行 IOleInPlaceFrame::SetMenu 时,不要调用 PeekMessage 或 GetMessage 函数或对话框。 这样做可能会导致系统死锁。 从 IOleInPlaceFrame::SetMenu 中可以调用哪些 OLE 接口方法和函数存在进一步限制。
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | oleidl.h |