Вверх ↑
Гость
Ответов: 17029
Рейтинг: 0
#1: 2004-09-10 17:47:56 ЛС | профиль | цитата
У этого элемента есть данные 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 потеряет всякий смысл - прога хоть и сделает что-то полезное, но тем самым нарушит процесс завершения винды.
карма: 0

0