3

Существует два распространенных способа выхода из программы в Windows:

  1. Нажмите « File в строке меню и выберите « Exit в появившемся меню.
  2. Нажмите на кнопку X в правом верхнем углу

Предположим, ради этого вопроса, что вы имеете дело с последним окном, которое открыла программа. Предположим также, что вы не имеете дело с программой, которая незаметно остается открытой в качестве фонового процесса, даже если у нее нет активных окон.

Эти методы эквивалентны друг другу? Если нет, то какая разница? Например, один очищает ресурсы более полно, чем другой?

2 ответа2

7

Один отправляет командное сообщение, назначенное элементу меню, в очередь сообщений окна, другой отправляет сообщение WM_CLOSE в очередь сообщений окна. То, как приложение реагирует на каждое, определяется тем, как оконный цикл обрабатывает данное сообщение.

6

Ответ Игнасио хорош, но я бы добавил менее техническую версию.


File -> Exit предоставляется программным обеспечением (а некоторые программы даже не имеют файлового меню или опции выхода), и программное обеспечение будет обрабатывать их так, как захочет.

X присоединяется к любому стандартному окну операционной системой (которая также предоставляет само стандартное окно). Щелчок по нему эффективно отправляет внешнее сообщение в окно с просьбой закрыть его. Это зависит от программного обеспечения, чтобы проверить это сообщение и ответить правильно.

Можно ожидать, что большинство программного обеспечения будут использовать одни и те же внутренние процедуры для обоих типов запросов, но это не гарантируется, как сказано, потому что разработчики программного обеспечения должны полностью их настраивать.

Кроме того, ни один из методов не гарантирует закрытие программы - подумайте о том, чтобы сделать что-либо в Excel с открытым отредактированным файлом, он спросит, хотите ли вы сохранить, но также даст вам возможность полностью отменить запрос.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .