2013-11-21 2 views
0

Так что я использую элемент ActiveX CShockwaveflash в моем приложении MFC, и я хочу отключить контекстное меню.MFC ActiveX CShockwaveflash элемент. Как отключить контекстное меню?

Я попытался обработать сообщение ON_WM_CONTEXTMENU() и перезаписать функцию OnContextMenu(CWnd* cWnd, CPoint point). Это не сработало.

Также я попытался SUT до крючка для событий мыши, как это:

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

Это спрячет некоторые из пунктов контекстного меню. Но не все из них. Контекстное меню по-прежнему отображается правой кнопкой мыши.

ответ

0

У Shockwave ActiveX есть свойство «Меню». Установите значение false и оно должно работать.

+0

Я использую класс CShockwaveflash1. Нет «конструктора» меню или что-то в этом роде. Существует метод SetMenu (CMenu * pMenu). Я попытался назвать это и передать NULL в качестве пареметра. Это не помогло. Контекстное меню по-прежнему отображается правой кнопкой мыши. – Alexandr

+0

Я не знаю, вы его искали. Но интерфейс IShockwaveFlash имеет свойство «Меню», как я уже говорил. Используйте средство просмотра Typelib, и вы можете его увидеть. – xMRi

+0

* удаленное сообщение * – Alexandr

Смежные вопросы