how can i add a menu when someone right clicks over the icon?

This code has to be in vb6

This is not my code, I found it here:
http://rprateek.blogspot.com/2008/06/minimise-vb-60-application-to-task-bar.html

The code works.  I was wondering how can i add a menu when someone right clicks over the icon?
Such as a menu that would stop the application, and other menu option to quit the app?
Thanks in advance.


Minimise VB 6.0 Application to Task Bar

Open a new standard project in vb 6.0

Then add a module named modPublic.bas in the project and add the following code in the module which are the public declaration and API call code:

Option Explicit

Public Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As MinimiseIconData) As Boolean

'constants required by Shell_NotifyIcon API call:
Public Const NIM_ADD = &H0
Public Const NIM_MODIFY = &H1
Public Const NIM_DELETE = &H2
Public Const NIF_MESSAGE = &H1
Public Const NIF_ICON = &H2
Public Const NIF_TIP = &H4
Public Const WM_MOUSEMOVE = &H200
Public Const WM_LBUTTONDOWN = &H201 'Button down
Public Const WM_LBUTTONUP = &H202 'Button up
Public Const WM_LBUTTONDBLCLK = &H203 'Double-click
Public Const WM_RBUTTONDOWN = &H204 'Button down
Public Const WM_RBUTTONUP = &H205 'Button up
Public Const WM_RBUTTONDBLCLK = &H206 'Double-click


Then add other module named modType for the public type declaration for the project. Add the following code in this module:

Public Type MinimiseIconData
cbSize As Long
hwnd As Long
uId As Long
uFlags As Long
uCallBackMessage As Long
hIcon As Long
szTip As String * 64
End Type

Then on the Form1 properties select the icon which you want to display when your application is minimised to the task bar.
Note: icon has the extention .ico

Add one command button on the form

Then in the Form1 code page add the following code:

Option Explicit

Private minIco As MinimiseIconData

Private Sub Command1_Click()
Unload Me
End Sub

Private Sub Form_Load()
If App.PrevInstance Then

End
End If
With minIco

.cbSize = Len(minIco)
.hwnd = Me.hwnd
.uId = vbNull
.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
.uCallBackMessage = WM_MOUSEMOVE
.hIcon = Me.Icon ' <== You can change this to another icon
.szTip = "Double-click this icon to make the application visible" & vbNullChar ' <== You can change this also.

End With
Shell_NotifyIcon NIM_ADD, minIco
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim lngButtonAction As Long

lngButtonAction = X / Screen.TwipsPerPixelX

Select Case lngButtonAction

Case WM_LBUTTONDBLCLK
' Left mouse button has been double clicked
' If app is currently minimized &.
Me.WindowState = vbNormal
Me.Show
'If Me.WindowState = vbMinimized Then ' & then restore it to normal size
' Me.WindowState = vbNormal
' Shell_NotifyIcon NIM_DELETE, nid ' and remove the icon
'ElseIf Not Me.Visible Then ' Else, if the app is hidden &
' Me.Show ' then show the form again
' Me.WindowState = vbNormal
' Shell_NotifyIcon NIM_DELETE, nid ' and remove the icon
'End If

Case WM_LBUTTONDOWN
' You could put code in here to make something happen when
' left mouse button is single clicked on the icon

Case WM_RBUTTONDOWN
' You could put code in here to make something happen when
' right mouse button is single clicked on the icon

End Select

End Sub

Private Sub Form_Resize()
On Error Resume Next

If Me.WindowState = vbMinimized Then
Me.Hide
Shell_NotifyIcon NIM_ADD, minIco
Else ' otherwise don't show it
Me.Show
Shell_NotifyIcon NIM_DELETE, minIco ' ç This removes the icon
End If
End Sub


Private Sub Form_Terminate()
Shell_NotifyIcon NIM_DELETE, minIco
End Sub
blackbookcoder2Asked:
Who is Participating?
 
Mike TomlinsonMiddle School Assistant TeacherCommented:
See "How to use the System Tray directly from Visual Basic":
http://support.microsoft.com/kb/176085
0
 
danaseamanCommented:
Add a top level menu item "mnuPopUp" and uncheck visible.
Add 2 submenus "mnuTray" with captions "Stop", "Exit".

Add this code to your project:

Case WM_RBUTTONDOWN
   ' You could put code in here to make something happen when
   ' right mouse button is single clicked on the icon
   Me.PopupMenu mnuPopUp
   ...

Private Sub mnuTray_Click(Index As Integer)
   Select Case Index
      Case 0 '
         Debug.Print "Stop"
      Case 1 '
         Debug.Print "Exit"
   End Select
End Sub


0
 
blackbookcoder2Author Commented:
i will get back to you all with the points shortly, thanks for your help, not feeling well this week
0
 
blackbookcoder2Author Commented:
Thanks very much
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.