C++ MFC ActiveX CSF是一个Flash元素。如何禁用上下文菜单?
因此,我在MFC应用程序中使用ActiveX CSF元素,我想禁用上下文菜单 我试图处理ON_WM_CONTEXTMENU()消息并覆盖C++ MFC ActiveX CSF是一个Flash元素。如何禁用上下文菜单?,c++,flash,mfc,activex,contextmenu,C++,Flash,Mfc,Activex,Contextmenu,因此,我在MFC应用程序中使用ActiveX CSF元素,我想禁用上下文菜单 我试图处理ON_WM_CONTEXTMENU()消息并覆盖OnContextMenu(CWnd*CWnd,CPoint point)函数。那没用 我还尝试为鼠标事件设置钩子,如下所示: g_hMouseHook = SetWindowsHookEx(WH_MOUSE, &OnMouseEvent, NULL, GetCurrentThreadId()); 在OnMouseEvent()函数中,我检查WPARA
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);
隐藏了一些上下文菜单项。但不是所有的。右键单击时,上下文菜单仍然显示。Shockwave ActiveX具有名为“菜单”的属性。将此设置为false,它应该可以工作。我正在使用CS1类。那里没有“菜单”或类似的东西。有设置菜单(CMenu*pMenu)方法。我试着调用它并传递NULL作为参数。那没用。快捷菜单仍然显示在鼠标右键下。我不知道你在找它。但是,正如我告诉您的,IShockwaveFlash接口有一个名为Menu的属性。使用Typelib查看器可以看到它。CS1有一个基本类型:CWnd。我在Typelib查看器中的任何地方都没有看到IShockWaveLash…您只是从您得到的包装器中说话。我是从控件所支持的ActiveX接口说起的。试着去了解差异;)哦我最终得到了:)但是我用create()方法创建了我的元素。由于特定的原因,我不能通过VisualStudio对话框构造函数将此元素添加到对话框中。