У этого элемента есть данные Close, описание к которому оборвано на полуслове.
Имеет смысл сделать onClose, которое сработает, когда форму будут пытаться закрыть. Причем обработку события onClose нужно провести за один проход (во время обработки сообщения WM_CLOSE до возврата кода), чтобы выполнилась цепочка действий и далее WndProc сама бы обработала закрытие формы как обычно.
Аналогично можно сделать следующее.
1) Данные или свойство CloseWindows 0/1. Если 1, то оконная функция при получении WM_QUERYENDSESSION и WM_ENDSESSION должна вернуть FALSE. Тогда если юзер попытается выйти из системы или завершить винду, последняя разошлет всем WM_QUERYENDSESSION и если хоть одно приложение вернет FALSE, то выход отменяется.
2) Событие onCloseWindows. При получении WM_QUERYENDSESSION нужно обработать все, что повесили на событие и вернуть TRUE, чтобы не мешать винде завершаться.
Не знаю как там хиасм работает, но смысл в том, чтобы оба события, изначально приходящие из оконной функции, были обработаны до того, как функция вернет код на полученное сообщение. Иначе onCloseWindows потеряет всякий смысл - прога хоть и сделает что-то полезное, но тем самым нарушит процесс завершения винды.
Гость
Ответов: 17029
Рейтинг: 0
|
|||
карма: 0 |
|