WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  Visual Basic
  Как создать свое меню для иконки в систрее?

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Как создать свое меню для иконки в систрее?
cr опубликован 28-01-2002 18:18 MSK   Click Here to See the Profile for cr   Click Here to Email cr  
Как создать свое меню для иконки в систрее?
Creedence Sergey опубликован 28-01-2002 21:44 MSK     Click Here to See the Profile for Creedence Sergey  Click Here to Email Creedence Sergey     
Во-первых, посмотри MSDN по поиску функции Shell_NotifyIcon. Там где-то есть готовый пример под VB. В своем случае я его использовал.
cr опубликован 29-01-2002 13:17 MSK     Click Here to See the Profile for cr  Click Here to Email cr     
To Creedence Sergey:
Сенк! Работает.

Кому интересно, вот что получилось:

Private 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
Private Const NIM_ADD = &H0
Private Const NIM_MODIFY = &H1
Private Const NIM_DELETE = &H2
Private Const WM_MOUSEMOVE = &H200
Private Const NIF_MESSAGE = &H1
Private Const NIF_ICON = &H2
Private Const NIF_TIP = &H4
Private Const WM_LBUTTONDBLCLK = &H203
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Private Const WM_RBUTTONDBLCLK = &H206
Private Const WM_RBUTTONDOWN = &H204
Private Const WM_RBUTTONUP = &H205
Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
Dim nid As NOTIFYICONDATA
'на форме нужно создать меню(MnuTrayIconPopup), c двумя пунктами - mnuexit и mnuabout
Private Sub Form_Load()
If App.PrevInstance = False Then
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 = Form1.Icon
nid.szTip = "Два раза левой или один раз правой :)" & vbNullChar
Shell_NotifyIcon NIM_ADD, nid
End If
End Sub
Private Sub form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Static rec As Boolean
Static msg As Long
msg = X / Screen.TwipsPerPixelX
If rec = False Then
rec = True
Select Case msg
Case WM_LBUTTONDBLCLK:
Form1.WindowState = 0
Me.Show
Case WM_LBUTTONDOWN:
Case WM_LBUTTONUP:
Case WM_RBUTTONDBLCLK:
Case WM_RBUTTONDOWN:
Case WM_RBUTTONUP:
Me.PopupMenu MnuTrayIconPopup
End Select
rec = False
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
Shell_NotifyIcon NIM_DELETE, nid
End
End Sub
Private Sub mnuabout_Click()
MsgBox ("О программе: ..."), vbInformation
End Sub
Private Sub mnuExit_Click()
End
End Sub

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.