Чтобы программа, написанная на SDL, «отвечала» на операционную систему, вы должны вернуть SDL управление, чтобы она обрабатывала системные сообщения и возвращала их вам как события SDL (события мыши, события клавиатуры и т. Д.) .
Чтобы сделать это, вы должны добавить цикл, который использует SDL_PollEvent
, который должен выглядеть примерно так
while(true)
{
SDL_Event e;
while (SDL_PollEvent(&e))
{
// Decide what to do with events here
}
// Put the code that is executed every "frame".
// Under "frame" I mean any logic that is run every time there is no app events to process
}
Есть некоторые специальные события, такие как SDL_QuiEvent
, которые вам нужно обработать, чтобы иметь способ закрыть ваше приложение. Если вы хотите справиться с этим, вы должны изменить свой код, чтобы он выглядел примерно так:
while(true)
{
SDL_Event e;
while (SDL_PollEvent(&e))
{
if(e.type == SDL_QUIT)
{
break;
}
// Handle events
}
// "Frame" logic
}
WebBrowser browser;
browser.Document.ContextMenuShowing += new HtmlElementEventHandler(MyCustomContextMenuMethod);
AddHandler Me.WebBrowser1.Document.ContextMenuShowing, AddressOf WebContextMenuShowing
Я прибрежно скопировал Ваш вопрос и работавший мой google-fu на нем...
Фактически:
WebBrowser browser;
browser.IsWebBrowserContextMenuEnabled = false;
Это в значительной степени говорит WebBrowser о том, что контекстное меню, вызываемое правой кнопкой мыши, не приветствуется.