J'ai un contrôle ActiveX qui est placé dans un conteneur de navigateur IE. Le contrôle crée une autre boîte de dialogue dont les propriétés WS_POPUP et WS_LAYERED sont activées afin de pouvoir utiliser la fonction SetLayeredWindowAttributes (...) pour obtenir une transparence par clé de couleur et une fusion alpha au-dessus du contrôle.Avec un contrôle ActiveX dans un conteneur de fenêtre de navigateur, comment puis-je détecter lorsque l'utilisateur change de tabulation du contrôle ActiveX
Étant donné que la propriété WS_LAYERED ne peut pas être utilisée avec la propriété WS_CHILD, la gestion de la visibilité de la fenêtre n'est pas automatique. Je dois être en mesure de détecter quand le contrôle ActiveX n'est plus visible (c'est-à-dire parce que l'onglet du navigateur a été modifié ou réduit) afin que je puisse changer la visibilité de la fenêtre de superposition.
J'ai essayé d'utiliser certains des messages de fenêtre existants (WM_) pour déterminer cette modification, mais je ne les ai pas vus se déclencher lorsque l'onglet du navigateur IE est modifié. Est-ce que quelqu'un sait la meilleure façon de capturer quand ces changements de visibilité se produisent?
Oui, une notification WM_SHOWWINDOW dans le contrôle ne se produit pas lorsque l'onglet est modifié ou même si la fenêtre du navigateur est réduite. Comment procéder pour intercepter et interpréter les notifications du navigateur? – flawlesslyfaulted
Je peux créer une fenêtre "OWNED" comme mentionné sur msdn mais cela résout seulement le problème de minimiser le problème de changement d'onglet. http://msdn.microsoft.com/fr-fr/library/ms632599(VS.85).aspx#owned_windows "-Une fenêtre possédée est toujours au-dessus de son propriétaire dans l'ordre z -Le système automatiquement détruit une fenêtre possédée quand son propriétaire est détruit -Une fenêtre possédée est cachée quand son propriétaire est minimisé. " – flawlesslyfaulted
Si le navigateur ne vous donne aucun contrôle sur les notifications, vous devez rechercher une solution qui n'utilise pas de fenêtre WS_POPUP. Je ne pense pas que vous serez en mesure d'interpréter quoi que ce soit de façon fiable. La fenêtre contextuelle est juste un deadend, désolé. –