bonjour,
voici mon probleme je place mon icon dans le systray avec un click droit un
popup s'affiche (normal) mais si je ne selectionne pas un de ses choix et
que je click a coté ou sur autre chose se popup ne se desactive pas et reste
afficher... se qui est genant puisque pour qu'il s'effache je doit
obligatoirement faire un choix sur se popup. voisi mon code...
'
'dans un module
'icontray
Public Const AJOUT = &H0
Public Const MODIF = &H1
Public Const SUPPRIME = &H2
Public Const MOUSEMOVE = &H200
Public Const MESSAGE = &H1
Public Const Icone = &H2
Public Const TIP = &H4
Public Const DOUBLE_CLICK_GAUCHE = &H203
Public Const BOUTON_GAUCHE_POUSSE = &H201
Public Const BOUTON_GAUCHE_LEVE = &H202
Public Const DOUBLE_CLICK_DROIT = &H206
Public Const BOUTON_DROIT_POUSSE = &H204
Public Const BOUTON_DROIT_LEVE = &H205
Public Type IconeTray
cbSize As Long 'Taille de l'icône (en octets)
hWnd As Long 'Handle de la fenêtre chargée de recevoir les
messages envoyés lors des évènements sur l'icône (clics, doubles-clics...)
uID As Long 'Identificateur de l'icône
uFlags As Long
uCallbackMessage As Long 'Messages à renvoyer
hIcon As Long 'Handle de l'icône
szTip As String * 64 'Texte à mettre dans la bulle d'aide
End Type
Public IconeT As IconeTray
Public Declare Function Shell_NotifyIcon Lib "shell32" Alias
"Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As IconeTray) As Boolean
' dans la form
Private Sub Form_Load()
IconeT.cbSize = Len(IconeT)
IconeT.hWnd = frmControle.hWnd
IconeT.uID = 1&
IconeT.uFlags = Icone Or TIP Or MESSAGE
IconeT.uCallbackMessage = MOUSEMOVE
IconeT.szTip = "Contrôle rendez-vous inactif" & Chr$(0)
IconeT.hIcon = frmControle.Image1(0).Picture
Shell_NotifyIcon AJOUT, IconeT
IconeAff
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single,
y As Single)
Dim msg As Integer
Dim rec As Boolean
msg = X / Screen.TwipsPerPixelX
If rec = False Then
rec = True
Select Case msg
Case DOUBLE_CLICK_GAUCHE
LanceRDV "Tous"
Case BOUTON_DROIT_LEVE
PopupMenu mnuMenu
End Select
rec = False
End If
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Picalausa François
"Joel" a écrit dans le message de news: 45503487$0$25941$
bonjour, voici mon probleme je place mon icon dans le systray avec un click droit un popup s'affiche (normal) mais si je ne selectionne pas un de ses choix et que je click a coté ou sur autre chose se popup ne se desactive pas et reste afficher... se qui est genant puisque pour qu'il s'effache je doit obligatoirement faire un choix sur se popup. voisi mon code...
Hello,
C'est un problème connu de cette fonction, documenté dans la msdn: http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/resources/menus/menureference/menufunctions/trackpopupmenuex.asp (section remarques) "To display a context menu for a notification icon, the current window must be the foreground window before the application calls TrackPopupMenu or TrackPopupMenuEx. Otherwise, the menu will not disappear when the user clicks outside of the menu or the window that created the menu (if it is visible)."
Je te conseille donc d'utiliser SetForegroundWindow comme indiqué dans cet article de la kb: http://support.microsoft.com/default.aspx/kb/176085
-- Picalausa François
"Joel" <joel.decotigny@wanadoo.fr> a écrit dans le message de news:
45503487$0$25941$ba4acef3@news.orange.fr...
bonjour,
voici mon probleme je place mon icon dans le systray avec un click droit
un popup s'affiche (normal) mais si je ne selectionne pas un de ses choix
et que je click a coté ou sur autre chose se popup ne se desactive pas et
reste afficher... se qui est genant puisque pour qu'il s'effache je doit
obligatoirement faire un choix sur se popup. voisi mon code...
Hello,
C'est un problème connu de cette fonction, documenté dans la msdn:
http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/resources/menus/menureference/menufunctions/trackpopupmenuex.asp
(section remarques)
"To display a context menu for a notification icon, the current window must
be the foreground window before the application calls TrackPopupMenu or
TrackPopupMenuEx. Otherwise, the menu will not disappear when the user
clicks outside of the menu or the window that created the menu (if it is
visible)."
Je te conseille donc d'utiliser SetForegroundWindow comme indiqué dans cet
article de la kb:
http://support.microsoft.com/default.aspx/kb/176085
"Joel" a écrit dans le message de news: 45503487$0$25941$
bonjour, voici mon probleme je place mon icon dans le systray avec un click droit un popup s'affiche (normal) mais si je ne selectionne pas un de ses choix et que je click a coté ou sur autre chose se popup ne se desactive pas et reste afficher... se qui est genant puisque pour qu'il s'effache je doit obligatoirement faire un choix sur se popup. voisi mon code...
Hello,
C'est un problème connu de cette fonction, documenté dans la msdn: http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/resources/menus/menureference/menufunctions/trackpopupmenuex.asp (section remarques) "To display a context menu for a notification icon, the current window must be the foreground window before the application calls TrackPopupMenu or TrackPopupMenuEx. Otherwise, the menu will not disappear when the user clicks outside of the menu or the window that created the menu (if it is visible)."
Je te conseille donc d'utiliser SetForegroundWindow comme indiqué dans cet article de la kb: http://support.microsoft.com/default.aspx/kb/176085
-- Picalausa François
Joel DECOTIGNY
merci pour cette reponte et conseil je vais allez voir pour SetForegroundWindow encore merci
"Picalausa François" a écrit dans le message de news:
"Joel" a écrit dans le message de news: 45503487$0$25941$
bonjour, voici mon probleme je place mon icon dans le systray avec un click droit un popup s'affiche (normal) mais si je ne selectionne pas un de ses choix et que je click a coté ou sur autre chose se popup ne se desactive pas et reste afficher... se qui est genant puisque pour qu'il s'effache je doit obligatoirement faire un choix sur se popup. voisi mon code...
Hello,
C'est un problème connu de cette fonction, documenté dans la msdn: http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/resources/menus/menureference/menufunctions/trackpopupmenuex.asp (section remarques) "To display a context menu for a notification icon, the current window must be the foreground window before the application calls TrackPopupMenu or TrackPopupMenuEx. Otherwise, the menu will not disappear when the user clicks outside of the menu or the window that created the menu (if it is visible)."
Je te conseille donc d'utiliser SetForegroundWindow comme indiqué dans cet article de la kb: http://support.microsoft.com/default.aspx/kb/176085
-- Picalausa François
merci pour cette reponte et conseil je vais allez voir pour
SetForegroundWindow
encore merci
"Picalausa François" <fpicalausa@chez.com> a écrit dans le message de news:
uE5k6jOBHHA.1196@TK2MSFTNGP02.phx.gbl...
"Joel" <joel.decotigny@wanadoo.fr> a écrit dans le message de news:
45503487$0$25941$ba4acef3@news.orange.fr...
bonjour,
voici mon probleme je place mon icon dans le systray avec un click droit
un popup s'affiche (normal) mais si je ne selectionne pas un de ses choix
et que je click a coté ou sur autre chose se popup ne se desactive pas et
reste afficher... se qui est genant puisque pour qu'il s'effache je doit
obligatoirement faire un choix sur se popup. voisi mon code...
Hello,
C'est un problème connu de cette fonction, documenté dans la msdn:
http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/resources/menus/menureference/menufunctions/trackpopupmenuex.asp
(section remarques)
"To display a context menu for a notification icon, the current window
must be the foreground window before the application calls TrackPopupMenu
or TrackPopupMenuEx. Otherwise, the menu will not disappear when the user
clicks outside of the menu or the window that created the menu (if it is
visible)."
Je te conseille donc d'utiliser SetForegroundWindow comme indiqué dans cet
article de la kb:
http://support.microsoft.com/default.aspx/kb/176085
merci pour cette reponte et conseil je vais allez voir pour SetForegroundWindow encore merci
"Picalausa François" a écrit dans le message de news:
"Joel" a écrit dans le message de news: 45503487$0$25941$
bonjour, voici mon probleme je place mon icon dans le systray avec un click droit un popup s'affiche (normal) mais si je ne selectionne pas un de ses choix et que je click a coté ou sur autre chose se popup ne se desactive pas et reste afficher... se qui est genant puisque pour qu'il s'effache je doit obligatoirement faire un choix sur se popup. voisi mon code...
Hello,
C'est un problème connu de cette fonction, documenté dans la msdn: http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/resources/menus/menureference/menufunctions/trackpopupmenuex.asp (section remarques) "To display a context menu for a notification icon, the current window must be the foreground window before the application calls TrackPopupMenu or TrackPopupMenuEx. Otherwise, the menu will not disappear when the user clicks outside of the menu or the window that created the menu (if it is visible)."
Je te conseille donc d'utiliser SetForegroundWindow comme indiqué dans cet article de la kb: http://support.microsoft.com/default.aspx/kb/176085
-- Picalausa François
Joel DECOTIGNY
je viens d'essayer le code pour (SetForegroundWindow) par contre il est dit dans le code: la forme doit être entièrement visible avant d'appeler Shell_NotifyIcon se qui me genait car je ne veut pas quelle soit vu mais apparament j'ai supprimer les ligne: Private Sub Form_Load() ' Me.Show ' Me.Refresh
et apparament sa fonctionne tres bien la form est regler sur visibleúlse encore merci de m'avoir indiquer ce code
"Picalausa François" a écrit dans le message de news:
"Joel" a écrit dans le message de news: 45503487$0$25941$
bonjour, voici mon probleme je place mon icon dans le systray avec un click droit un popup s'affiche (normal) mais si je ne selectionne pas un de ses choix et que je click a coté ou sur autre chose se popup ne se desactive pas et reste afficher... se qui est genant puisque pour qu'il s'effache je doit obligatoirement faire un choix sur se popup. voisi mon code...
Hello,
C'est un problème connu de cette fonction, documenté dans la msdn: http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/resources/menus/menureference/menufunctions/trackpopupmenuex.asp (section remarques) "To display a context menu for a notification icon, the current window must be the foreground window before the application calls TrackPopupMenu or TrackPopupMenuEx. Otherwise, the menu will not disappear when the user clicks outside of the menu or the window that created the menu (if it is visible)."
Je te conseille donc d'utiliser SetForegroundWindow comme indiqué dans cet article de la kb: http://support.microsoft.com/default.aspx/kb/176085
-- Picalausa François
je viens d'essayer le code pour (SetForegroundWindow)
par contre il est dit dans le code: la forme doit être entièrement visible
avant d'appeler Shell_NotifyIcon
se qui me genait car je ne veut pas quelle soit vu mais apparament j'ai
supprimer les ligne:
Private Sub Form_Load()
' Me.Show
' Me.Refresh
et apparament sa fonctionne tres bien
la form est regler sur visibleúlse
encore merci de m'avoir indiquer ce code
"Picalausa François" <fpicalausa@chez.com> a écrit dans le message de news:
uE5k6jOBHHA.1196@TK2MSFTNGP02.phx.gbl...
"Joel" <joel.decotigny@wanadoo.fr> a écrit dans le message de news:
45503487$0$25941$ba4acef3@news.orange.fr...
bonjour,
voici mon probleme je place mon icon dans le systray avec un click droit
un popup s'affiche (normal) mais si je ne selectionne pas un de ses choix
et que je click a coté ou sur autre chose se popup ne se desactive pas et
reste afficher... se qui est genant puisque pour qu'il s'effache je doit
obligatoirement faire un choix sur se popup. voisi mon code...
Hello,
C'est un problème connu de cette fonction, documenté dans la msdn:
http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/resources/menus/menureference/menufunctions/trackpopupmenuex.asp
(section remarques)
"To display a context menu for a notification icon, the current window
must be the foreground window before the application calls TrackPopupMenu
or TrackPopupMenuEx. Otherwise, the menu will not disappear when the user
clicks outside of the menu or the window that created the menu (if it is
visible)."
Je te conseille donc d'utiliser SetForegroundWindow comme indiqué dans cet
article de la kb:
http://support.microsoft.com/default.aspx/kb/176085
je viens d'essayer le code pour (SetForegroundWindow) par contre il est dit dans le code: la forme doit être entièrement visible avant d'appeler Shell_NotifyIcon se qui me genait car je ne veut pas quelle soit vu mais apparament j'ai supprimer les ligne: Private Sub Form_Load() ' Me.Show ' Me.Refresh
et apparament sa fonctionne tres bien la form est regler sur visibleúlse encore merci de m'avoir indiquer ce code
"Picalausa François" a écrit dans le message de news:
"Joel" a écrit dans le message de news: 45503487$0$25941$
bonjour, voici mon probleme je place mon icon dans le systray avec un click droit un popup s'affiche (normal) mais si je ne selectionne pas un de ses choix et que je click a coté ou sur autre chose se popup ne se desactive pas et reste afficher... se qui est genant puisque pour qu'il s'effache je doit obligatoirement faire un choix sur se popup. voisi mon code...
Hello,
C'est un problème connu de cette fonction, documenté dans la msdn: http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/resources/menus/menureference/menufunctions/trackpopupmenuex.asp (section remarques) "To display a context menu for a notification icon, the current window must be the foreground window before the application calls TrackPopupMenu or TrackPopupMenuEx. Otherwise, the menu will not disappear when the user clicks outside of the menu or the window that created the menu (if it is visible)."
Je te conseille donc d'utiliser SetForegroundWindow comme indiqué dans cet article de la kb: http://support.microsoft.com/default.aspx/kb/176085