Source » 18.10.2007 (Чт) 8:52
установил флаг выхода в mnuTray_Exit_Click() и в таймере по нему выхожу. Всё отлично!
А если слать сообщение о закрытии окна, почему-то всё равно выходит с ошибкой! Вывод меню - операция блокирующая, сначала, вызывая меню в процедуре хука обработки сообщений в событии mnuTray_Exit_Click(), написал SendMessage Me.hwnd, WM_CLOSE,0,0. По идее после выполнения SendMessage должна была завершиться mnuTray_Exit_Click(), затем процедура хука, где было вызвано меню. Затем по сообщению WM_CLOSE должна сработать проца Unload, где снимается хук. Но, т.к. прога завешилась с ошибкой, Unload было вызвано из обработчика сообщений хука. Как такое могло произойти? Наверное, в этом замешана CallWindowProc, но каким образом? Т.е. каким образом происходит вызов процедур при отправке WM_CLOSE?