Bonsoir j ai une application avec plusieurs feuille dont une feuille partent mdi et je voulais utilisé l api pour mettre l icone dans la barre pres de l heure que je reduis la feuille parent le probleme c est que l icone de mon application se met bien pres de l heure mais je suis obligé de cliqué 4 fois pour le retour mon application au lieux de deux fois.
voici le code ce qui concerne l api
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 'API Shell_NotifyIcon '############################################################################################################################################## Public Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean Public Type NOTIFYICONDATA cbSize As Long hwnd As Long uID As Long uFlags As Long uCallbackMessage As Long hIcon As Long szTip As String * 64 End Type 'Déclare les constantes de l'API . Ces constantes peuvent être 'Trouvée dans le fichier d'en-tête Shellapi.h. 'Les constantes suivantes sont des messages envoyés à la 'Shell_NotifyIcon fonction à ajouter, modifier ou supprimer une icône dans la 'Statut des tâches. Public Const NIM_ADD = &H0 Public Const NIM_MODIFY = &H1 Public Const NIM_DELETE = &H2 'The following constant is the message sent when a mouse event occurs 'within the rectangular boundaries of the icon in the taskbar status 'area. Public Const WM_MOUSEMOVE = &H200 'Ce qui suit est le message constant envoyé quand un événement de la souris se produit 'Dans le rectangle frontières de l'icône dans la barre des tâches statut Public Const NIF_MESSAGE = &H1 Public Const NIF_ICON = &H2 Public Const NIF_TIP = &H4 'Left-click constants. Public Const WM_LBUTTONDBLCLK = &H203 'Double-click Public Const WM_LBUTTONDOWN = &H201 'Button down Public Const WM_LBUTTONUP = &H202 'Button up 'Right-click constants. Public Const WM_RBUTTONDBLCLK = &H206 'Double-click Public Const WM_RBUTTONDOWN = &H204 'Button down Public Const WM_RBUTTONUP = &H205 'Button up 'Dimension a variable as the user-defined data type. Public nid As NOTIFYICONDATA 'Dimension comme une variable définie par l'utilisateur type de données. Public Y As Integer Public X As Integer Public toggle As Integer##############################################################[/CODE]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80 Public Sub FormUnload() 'API Shell_NotifyIcon '######################## Set frm_child1_cons = Nothing End '######################## End Sub Private Sub MDIForm_Load() Me.Show Y = 2 End Sub Private Sub MDIForm_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) 'API Shell_NotifyIcon '############################################################################################## 'Event occurs when the mouse pointer is within the rectangular 'boundaries of the icon in the taskbar status area. Dim msg As Long Dim sFilter As String msg = X / Screen.TwipsPerPixelX Select Case msg Case WM_LBUTTONDOWN Case WM_LBUTTONUP Case WM_LBUTTONDBLCLK Shell_NotifyIcon NIM_DELETE, nid Me.Show Me.WindowState = 2 Case WM_RBUTTONDOWN Case WM_RBUTTONUP Case WM_RBUTTONDBLCLK Shell_NotifyIcon NIM_DELETE, nid Me.Show Me.WindowState = 2 End Select '################################################################################################# End Sub Private Sub MDIForm_Resize() If Me.WindowState = vbMinimized Then 'API Shell_NotifyIcon '################################################################################### 'Cliquez sur ce bouton pour ajouter une icône de la barre des tâches statut. 'Définir les valeurs individuelles du type de données NOTIFYICONDATA. nid.cbSize = Len(nid) nid.hwnd = Me.hwnd nid.uID = vbNull nid.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE nid.uCallbackMessage = WM_MOUSEMOVE nid.hIcon = Me.Icon nid.szTip = "Click to show Form" & vbNullChar 'Appelez la fonction Shell_NotifyIcon pour ajouter l'icône sur la barre des tâches Shell_NotifyIcon NIM_ADD, nid Me.Hide '######################################################################################### End If End Sub Private Sub MDIForm_Terminate() 'API Shell_NotifyIcon '########################################################## 'Supprimer l'icône ajoutée à partir de la barre des tâches Shell_NotifyIcon NIM_DELETE, nid '########################################################## End Sub Private Sub MDIForm_Unload(Cancel As Integer) 'API Shell_NotifyIcon '################################################ toggle = 0 Shell_NotifyIcon NIM_DELETE, nid Call FormUnload '################################################
Je pense que c est du a la feuille parent car d habitude je n' ai pas ce problème
Meric d avance
Partager