Я наткнулся на эту тему, ища ответ, почему это значение изменяется, когда Microsoft Word «исчезает» в окне. Я поддерживаю приложение, которое отслеживает значения HWND для совместного использования приложения. Это хорошо работает, но приложения Microsoft Office часто обрабатывают их необычными способами. В этом конкретном случае я обнаружил, что если вы делаете следующее в Microsoft Word 2013:
- Открыть два новых документа в отдельных окнах.
- Сохранить значения HWND для обоих окон.
- Закройте одно из двух окон.
Оба значения HWND при запросе функций Windows, IsWindow, IsVisible и т. Д. Будут отображаться как нормальные, все еще видимые и т. Д. Я не могу найти информацию о том, что одно из окон было закрыто - кроме этого недокументированное значение dwExStyle. 0x800 будет «включен» в окне, которое все еще видно, и «выключен» в окне, которое больше не видно.
(Кстати, я знаю, что вы не «должны» сохранять значения HWND таким образом - но попробуйте отслеживать окна для совместного использования без сохранения этого значения - не так просто!)