Voilà, j'aime bien faire des applications qui se lancent depuis la barre des tâches.
Mais dès que je fais un popupmenu (on fait un clique droit sur l'icône de la barre des taches et un menu apparait), celui ci refuse de se désactiver si je coche ailleurs dans l'écran.
J'ai cherché ici, mais je n'ai rien trouvé qui corrige ce bug.
Je suis donc allé pêcher ce code sur un autre site, et vu que ca m'a été super utile, je vous le livre de ce pas.
A prioris, il faut donc passer le prog qui est dormant dans la barre des tâches au premier plan, pour qu'il puisse détecter la perte de focus et donc quitter le popupmenu si on clique ailleurs dans la fenêtre ==> donc "SetForegroundWindow Me.hwnd"
Source / Exemple :
private Const DOUBLE_CLICK_GAUCHE = &H203
private Const BOUTON_GAUCHE_POUSSE = &H201
private Const BOUTON_GAUCHE_LEVE = &H202
private Const DOUBLE_CLICK_DROIT = &H206
private Const BOUTON_DROIT_POUSSE = &H204
private Const BOUTON_DROIT_LEVE = &H205
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim Msg as long
Msg = X / Screen.TwipsPerPixelX
If Me.WindowState = vbMinimized then
Select Case Msg
Case BOUTON_DROIT_POUSSE 'on appuie sur le bouton droit
SetForegroundWindow Me.hwnd
Popupmenu Me.menu
end select
end if
end sub
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.