Окно получения закрывает событие

Я хочу получить события, которые закрывают окно редактора (вкладка) в IDE Visual Studio 2008. Когда я использую dte2. Приложение. События get_CommandEvents (пустой указатель, 0).BeforeExecute я успешно получил такие события:

  • Файл. Близко
  • Файл. CloseAllButThis
  • Файл. Выход
  • Окно. CloseDocumentWindow и другие.

Если код в окне не приемлем, я останавливаю событие (CancelDefault = верный).

Но если я нажимаю кнопку "X" на правой стороне, "Сохраните Изменения"; диалоговое окно появляется, вкладка с окном редактора близко, и у меня нет полученных событий. В этом случае я могу получить событие WindowClosing, но не могу отменить событие.

Это - poosible для обработки "x" нажатия кнопки и события остановки?

13
задан Benjamin Gruenbaum 10 February 2014 в 00:50
поделиться

3 ответа

Если вы хотите использовать некоторый код Windows API, вы можете настроить ловушку с помощью функции SetWindowsHookEx для перехвата WM_CLOSE , WM_QUIT и WM_DESTROY .

0
ответ дан 2 December 2019 в 02:30
поделиться

В C # это будет примерно так: вы добавляете обработчик события Closing, а затем

void MyWindow_Closing(object sender, CancelEventArgs e)
        {
          if(something)
                e.Cancel = true;   //<- thats the magic part you want
}
1
ответ дан 2 December 2019 в 02:30
поделиться

Я бы посоветовал проверить линии обработки событий окна MDI Child!!

Вкладка редактора, на которую вы ссылаетесь, в основном является экземпляром дочернего окна MDI.

Надеюсь, это поможет!

0
ответ дан 2 December 2019 в 02:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: