IContextMenu2::HandleMenuMsg 方法 (shobjidl_core.h)
使 IContextMenu 接口的客户端对象能够处理与所有者绘制的菜单项关联的消息。
语法
HRESULT HandleMenuMsg(
UINT uMsg,
WPARAM wParam,
LPARAM lParam
);
参数
uMsg
类型: UINT
要处理的消息。 对于某些消息(例如WM_INITMENUPOPUP、WM_DRAWITEM、WM_MENUCHAR或WM_MEASUREITEM),所调用的客户端对象可能会提供所有者绘制的菜单项。
wParam
类型:WPARAM
其他消息信息。 此参数的值取决于 uMsg 参数的值。
lParam
类型:LPARAM
其他消息信息。 此参数的值取决于 uMsg 参数的值。
返回值
类型: HRESULT
如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
注解
IContextMenu2::HandleMenuMsg 通常替换为 HandleMenuMsg2。 当 IContextMenu 确定 IContextMenu3 受支持并接收 uMsg 参数说明中指定的消息之一时,将调用 HandleMenuMsg2。 但是,在某些情况下,仍会调用 IContextMenu2::HandleMenuMsg 。
如果需要 IContextMenu2 或 IContextMenu3 ,新上下文菜单的最佳实现是在 HandleMenuMsg2 中实现其所有逻辑,并使其 IContextMenu2::HandleMenuMsg 实现只需委托对 HandleMenuMsg2 的调用,并将 NULL 作为 plResult 参数传递。
注意 如果未实现 IContextMenu3 ,则不能保证将在其位置调用 IContextMenu2 。 在某些情况下,确定缺少 IContextMenu3 ,然后停止进程。
要求
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | shobjidl_core.h (包括 Shobjidl.h) |
DLL | Shell32.dll (版本 4.0 或更高版本) |