У меня есть элемент управления, полученный из объекта CWnd, который имеет свою собственную систему подсказок. Всплывающая подсказка реализована с использованием CDialog и работает нормально, но у меня есть проблема с определением, когда мне нужно ее скрыть.
Всплывающая подсказка отображается, когда мышь наводит курсор на элемент управления (WM_MOUSEHOVER), и скрывается, когда мышь покидает элемент управления (WM_MOUSELEAVE). Все идет нормально. Проблема в том, что диалоговое окно, в котором установлен элемент управления, может быть скрыто из меню (не уничтожено, его можно снова отобразить из меню). Когда это происходит, событие WM_MOUSELEAVE не отправляется в элемент управления, и всплывающая подсказка не удаляется ... она появляется в новом диалоговом окне.
Мой вопрос: есть ли способ узнать, что контроль скрыт? Я знаю, что могу записать сообщение WM_SHOWWINDOW для диалогового окна, в котором установлен элемент управления, но я хочу сделать это из самого элемента управления, чтобы использовать его в другом месте без необходимости добавления дополнительного кода.
Заранее спасибо!
Javier