Я не знаю, как все работает в Ruby, но в целом в Windows, когда окно получает запрос на закрытие, его оконная процедура получает сообщение WM_CLOSE
. Это место для отображения подсказок для пользователя. Если затем приложение хочет заблокировать закрытие окна (поскольку пользователь хочет отклонить его и т. Д.), Приложение может просто пропустить уничтожение окна и не передавать сообщение обработчику сообщений по умолчанию (DefWindowProc()
).
В случае, когда пользователь нажимает на кнопку закрытия окна или выбирает параметр «Закрыть» во всплывающем системном меню окна, или нажимает ALT-F4 , пока окно находится в фокусе, окно получает сообщение WM_SYSCOMMAND(SC_CLOSE)
, и если сообщение передается обработчику сообщений по умолчанию, то окно получает сообщение WM_CLOSE
.
Возьмите эту информацию и при необходимости переведите ее на Ruby.