OnKillFocus() переопределить при запуске MFC в нечетное время
Мне нужно знать, когда мое окно выходит из фокуса ввода, поэтому я перегрузил метод OnKillFocus() CWnd.
Однако он не вызывает этот метод, когда я фокусирую другое приложение (alt+tab) или даже минимизирую окно. Но он вызывает метод, когда я возвращаю его к минимуму. Это предполагаемое время для запуска этого метода?
2 ответа
Я думаю, что вам понадобится обработчик CWnd::OnActivateApp(), если вы хотите быть уверены, что будете уведомлены о выходе вашего приложения.
OnKillFocus() обычно используется только последовательно для элементов управления, которые имеют концепцию получения фокуса - кнопки, поля редактирования, списки и т. Д. Обычно CWnd не принимает фокус, поэтому вы не можете полагаться на это - я удивлен Вы получаете это вообще.
В дополнение к WM_ACTIVATEAPP
упоминалось выше, есть также WM_ACTIVATE
при переключении между окнами внутри одного и того же приложения вы можете захотеть перехватить.