【发布时间】:2013-11-21 13:14:44
【问题描述】:
所以我在我的 MFC 应用程序中使用 ActiveX CShockwaveflash 元素,我想禁用上下文菜单。
我尝试处理 ON_WM_CONTEXTMENU() 消息并覆盖 OnContextMenu(CWnd* cWnd, CPoint point) 函数。那没有用。
我还尝试为这样的鼠标事件设置钩子:
g_hMouseHook = SetWindowsHookEx(WH_MOUSE, &OnMouseEvent, NULL, GetCurrentThreadId());
在 OnMouseEvent() 函数中,我检查了 WPARAM。但只会触发鼠标左键。
if ((nCode >= 0) && (wParam == WM_LBUTTONDOWN))
{
// fires here on left mouse down
}
else if ((nCode >= 0) && (
(wParam == WM_RBUTTONDOWN) ||
(wParam == WM_RBUTTONUP) ||
(wParam == WM_CONTEXTMENU)
)
{
// never fires here
}
我也试过
m_flashPlayer.put_Menu(FALSE);
这隐藏了一些上下文菜单项。但不是全部。右键菜单仍然出现在鼠标右键。
【问题讨论】:
标签: c++ flash mfc activex contextmenu