С помощью элемента управления ActiveX в контейнере окна браузера, как определить, когда пользователь переходит с вкладки из элемента управления ActiveX - PullRequest
3 голосов
/ 26 февраля 2010

У меня есть элемент управления ActiveX, который помещается в контейнер браузера IE. Элемент управления создает другое диалоговое окно, в котором включены свойства WS_POPUP и WS_LAYERED, чтобы можно было использовать функцию SetLayeredWindowAttributes (...) для достижения прозрачности с помощью цветовых клавиш и альфа-смешивания поверх элемента управления.

Поскольку свойство WS_LAYERED нельзя использовать вместе со свойством WS_CHILD, управление видимостью окна не является автоматическим. Мне нужно быть в состоянии определить, когда элемент управления ActiveX больше не виден (т. Е. Потому что вкладка браузера была изменена или свернута), чтобы я мог изменить видимость окна наложения.

Я пытался использовать некоторые из существующих оконных сообщений (WM_), чтобы определить это изменение, но не видел их срабатывания при изменении вкладки браузера IE. Кто-нибудь знает лучший способ захвата, когда происходят эти изменения видимости?

1 Ответ

2 голосов
/ 26 февраля 2010

Если вы не видите уведомление WM_SHOWWINDOW, тогда ваше окно скрыто, а не скрыто. Нет сообщения Windows, которое сообщит вам, когда ваш элемент ActiveX будет закрыт. Вам нужно искать уведомления из браузера.

Или предложите решение, которое не использует окно WS_POPUP. Возможно, вы могли бы использовать AlphaBlend для выполнения своей собственной цветовой клавиатуры, а не полагаться на подразумеваемое поведение AlphaBlend SetLayeredWindowAttributes.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...