'МАХ Проект сервера для печати визовых анкет. Начат М.Шатуровым 18.11.2004
Option Explicit
Private TrayI As NOTIFYICONDATA
Private Declare Function Shell_NotifyIcon Lib "shell32" _
Alias "Shell_NotifyIconA" _
(ByVal dwMessage As Long, _
pnid As NOTIFYICONDATA) As Boolean
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 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_RBUTTONUP = &H205
Private Sub form_MouseDown(Button As Integer, _
Shift As Integer, _
X As Single, _
Y As Single)
Dim Msg As Long
Msg = X / Screen.TwipsPerPixelX
If Msg = WM_LBUTTONDBLCLK Then
'Left button double click
Hide_Click
ElseIf Msg = WM_RBUTTONUP Then
'Right button click
Hide_Click
End If
End Sub
Private Sub Form_Load()
'МАХ Свёртываю в трей
TrayI.cbSize = Len(TrayI)
TrayI.hWnd = Me.hWnd
TrayI.uId = 1&
TrayI.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
TrayI.ucallbackMessage = WM_LBUTTONDOWN
TrayI.hIcon = Me.Icon 'imgIcon(2).Picture
TrayI.szTip = "VKO Anketa Print Server" & Chr$(0)
Shell_NotifyIcon NIM_ADD, TrayI
Me.Hide
End Sub
Private Sub Form_Unload(Cancel As Integer)
'remove the icon
TrayI.cbSize = Len(TrayI)
TrayI.hWnd = Me.hWnd
TrayI.uId = 1&
Shell_NotifyIcon NIM_DELETE, TrayI
End Sub
Private Sub Hide_Click()
If Me.Visible Then
Me.Hide
Else
Me.Show
End If
End Sub
Свернул прогу в трей. А как отловить потом клики по иконке в трее?
Трабл следующий. "Свернул в трей" прогу - грубо говоря, спрятал форму, а в трей кинул иконку. А как отловить потом клик по этой иконке?
Цитата:
Originally posted by mhaturov
Извиняюсь за долгое молчание, но вот приходится опять писать.
Трабл следующий. "Свернул в трей" прогу - грубо говоря, спрятал форму, а в трей кинул иконку. А как отловить потом клик по этой иконке?
Извиняюсь за долгое молчание, но вот приходится опять писать.
Трабл следующий. "Свернул в трей" прогу - грубо говоря, спрятал форму, а в трей кинул иконку. А как отловить потом клик по этой иконке?
Всё, не надо. Разобрался уже.
Код:
почти полностью содрано с http://www.vb.kiev.ua/ref/w32api/showdoc.php?f=shell_notifyicon