MFC ActiveX CShockwaveflash элемент. Как отключить контекстное меню?

0

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

Я попытался обработать сообщение 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);

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

Теги:
mfc
activex
contextmenu
flash

1 ответ

0

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

  • 0
    Я использую класс CShockwaveflash1. Там нет «меню» или чего-то подобного. Есть метод SetMenu (CMenu * pMenu). Я попытался назвать это и передать NULL как paremeter. Это не помогло. Контекстное меню по-прежнему появляется при нажатии правой кнопки мыши.
  • 0
    Я не знаю, где вы ищете это. Но интерфейс IShockwaveFlash имеет свойство с именем Menu, как я уже говорил. Используйте ваш Typelib Viewer, и вы можете увидеть его.
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню