Vienyc
Messages postés47Date d'inscriptiondimanche 18 décembre 2005StatutMembreDernière intervention28 juin 2007
-
12 déc. 2006 à 11:35
Vienyc
Messages postés47Date d'inscriptiondimanche 18 décembre 2005StatutMembreDernière intervention28 juin 2007
-
12 déc. 2006 à 18:06
Bonjour,
Après quelques recherche pas très fructueuse (et devant le nombre de
fonctions de l'API Windows...) je cherche à réduire une fenêtre
exterieur à mon programme grâce à l'API Windows, je m'explique.
En VB6, j'ai une barre en haut de mon écran, je voudrais que, exemple,
si je lance IE, il se réduise pour être en dessous de ma barre (ma
barre est déjà en premier plan, le problème c'est qu'elle est trop
lage, donc cache la barre d'url de IE) donc en fait, réduire la fenêtre
E juste en dessous mon form.
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 12 déc. 2006 à 17:17
Salut,
Je rejoint [auteurdetail.aspx?ID=648299 Vienyc]
Cela ne fonctionne pas si l'exe est généré.
En revanche cela fonctionne en mode "développement" uniquement si la fenetre qui passe devant est l'IDE VB du projet
En Exe GetActiveWindow ne te retourne que des 0
@+: Ju£i?n Pensez: Réponse acceptée
Vienyc
Messages postés47Date d'inscriptiondimanche 18 décembre 2005StatutMembreDernière intervention28 juin 2007 12 déc. 2006 à 17:20
Ca ne change pas, et oui je pense qu'elles sont considéré comme fenêtre active car il detecte quand même si le handle est différent... Mais toi, en créant un .exe de ton application, en la lançant et en lançant une fenêtre IE au dessus, il la réduit bien ?
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 12 déc. 2006 à 17:30
Essaye de passer par GetFocus mais bon, je me demande pourquoi les API ne fonctionnent pas après compilation, en tout cas celle-ci! Mais je pense que GetFocus fera la même chose. Ca coute rien d'essayer!
'Déclaration des API
Private Declare Sub SetWindowPos Lib "User32" (ByVal hWnd As Long, _
ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long,
_ByVal cy As Long, ByVal wFlags As Long)
Private Declare Function GetFocus Lib "user32" Alias "GetFocus" () As Long
Private Sub Timer1_Timer()
'récupère le handle de la fenêtre active
Dim HandleFenetre As Long
HandleFenetre = GetFocus
'Si la fenêtre active est différente de celle de ton appli
If HandleFenetre <> Me.Hwnd Then
'redimensionne et replace cette fenêtre mais reste devant ton appli
SetWindowPos HandleFenetre , HWND_TOPMOST, 0, 200, 9500, 1200, SWP_HIDEWINDOW
End If
End Sub
Drikce 06
Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 12 déc. 2006 à 17:42
Oui je m'en doutai bien que GetFocus ne marcherai pas non plus! Mais bon qui ne tente rien n'a rien! Essaye de voir le lien de jrivet , ça peut peut-être t'apporter une solution!
Drikce 06
Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 12 déc. 2006 à 17:52
En fait d'apres ce que je comprend c'est que cela ne macrhe que pour les fenetre du meme thread. (donc de la meme appli) (j'espere simplement ne pas dire de grosse âneries...)