2013-11-21 65 views
0

所以我在我的MFC應用程序中使用ActiveX CShockwaveflash元素,我想禁用上下文菜單。MFC ActiveX CShockwaveflash元素。如何禁用上下文菜單?

我試着處理ON_WM_CONTEXTMENU()消息並覆蓋了OnContextMenu(CWnd* cWnd, CPoint point)函數。這沒有用。

而且我試圖SUT彌補這樣的鼠標事件掛鉤:

g_hMouseHook = SetWindowsHookEx(WH_MOUSE, &OnMouseEvent, NULL, GetCurrentThreadId()); 

我內心檢查WPARAM的OnMouseEvent()函數。但只有鼠標左鍵點擊被觸發。

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); 

這牆根一些上下文菜單項。但不是全部。上下文菜單仍然出現在鼠標右鍵下方。

回答

0

Shockwave ActiveX有一個名爲Menu的屬性。設置爲false,它應該工作。

+0

我正在使用CShockwaveflash1類。那裏沒有'菜單'prorerty或類似的東西。有SetMenu(CMenu * pMenu)方法。我試圖調用它並將NULL作爲參數傳遞。這沒有幫助。上下文菜單仍然出現在鼠標右鍵下方。 – Alexandr

+0

我不知道你是否在尋找它。但是,我告訴過你,IShockwaveFlash接口有一個名爲Menu的屬性。使用你的Typelib Viewer,你可以看到它。 – xMRi

+0

*已刪除郵件* – Alexandr