При нажатии на кнопку "Закрыть", свернуть программу в трей - VB

Узнай цену своей работы

Формулировка задачи:

Как можно сделать так, чтобы при нажатии на кнопку "Закрыть", программа сворачивалась в трей? А кликнув правой кнопкой на трей, там меюшка чтобы типо была...

Решение задачи: «При нажатии на кнопку "Закрыть", свернуть программу в трей»

textual
Листинг программы
Option Explicit
Dim nid As NOTIFYICONDATA
 
 
Private Declare Function RegisterWindowMessage Lib "user32" Alias "RegisterWindowMessageA" (ByVal lpString As String) As Long
 
Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean 'ГЉГ®Г*Г±ГІГ*Г*ГІГ» äëÿ äîáГ*âëåГ*ГЁГї, ГіГ¤Г*ëåГ*ГЁГї ГЁ ìîäèôèêГ*öèè ГўГ*ГёГҐГ© ГЁГЄГ*îêè:
Private Const NIM_ADD = 0
Private Const NIM_MODIFY = 1
Private Const NIM_DELETE = 2
'ГЉГ®Г*Г±ГІГ*Г*ГІГ» îòâåòñòâåГ*Г*ûå Г§Г* ñîáûòèÿ ïðîèñõîäÿùèå ГўГ*óòðè ГЈГ°Г*Г*ГЁГ¶ ГЁГЄГ®Г*ГЄГЁ, Г°Г*ñïîëîæåГ*Г*îé Гў Traybar:
Private Const WM_MOUSEMOVE = &H200
Private Const NIF_MESSAGE = 1
Private Const NIF_ICON = 2
Private Const NIF_TIP = 4
'ГЉГ®Г*Г±ГІГ*Г*ГІГ» îòâåòñòâåГ*Г*ûå Г§Г* ñîáûòèÿ ïîâåäåГ*ГЁГї ìûøêè ïðîèñõîäÿùèå ГўГ*óòðè ГЈГ°Г*Г*ГЁГ¶ ГЁГЄГ®Г*ГЄГЁ, ' Г°Г*ñïîëîæåГ*Г*îé Гў Traybar:
':
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Private Const WM_LBUTTONDBLCLK = &H203
'Äëÿ ГЇГ°Г*âîé ГЄГ«Г*ГўГЁГёГЁ ìûøêè:
Private Const WM_RBUTTONDOWN = &H204
Private Const WM_RBUTTONUP = &H205
Private Const WM_RBUTTONDBLCLK = &H206
'Äëÿ ñðåäГ*ГҐГ© ГЄГ«Г*ГўГЁГёГЁ ìûøêè:
Private Const WM_MBUTTONDOWN = &H207
Private Const WM_MBUTTONUP = &H208
Private Const WM_MBUTTONDBLCLK = &H209
'Îáúÿâëÿåì ïåðåìåГ*Г*ГіГѕ îïðåäåëÿåìóþ ïîëüçîâГ*òåëåì:
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 Sub Command1_Click()
nid.cbSize = Len(nid)
nid.hWnd = Form1.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 Sub
 
Private Sub Command2_Click()
nid.hIcon = Form1.Icon
nid.szTip = "Г„Г*ðîâ" & vbNullChar
Shell_NotifyIcon NIM_MODIFY, nid
End Sub
 
Private Sub Command3_Click()
Shell_NotifyIcon NIM_DELETE, nid
End Sub
 
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Îáúÿâëÿåì ïåðåìåГ*Г*ûå:
 
Dim msg As Long
Dim sFilter As String
 
msg = X / Screen.TwipsPerPixelX
Select Case msg
Case WM_LBUTTONDOWN
'ÑþäГ* ГІГ» ìîæåøü ГўГ±ГІГ*ГўГЁГІГј êîä, êîòîðûé Г§Г*õî÷åøü:
Print "ГЌГ*Г¦Г*ГІГ* ëåâГ*Гї ГЄГ*îïêГ* ìûøè(ГЌГ*Г¦Г*ГІГ*)"
 
Case WM_LBUTTONUP
'ÑþäГ* ГІГ» ìîæåøü ГўГ±ГІГ*ГўГЁГІГј êîä, êîòîðûé Г§Г*õî÷åøü:
Print "ГЌГ*Г¦Г*ГІГ* ëåâГ*Гї ГЄГ*îïêГ* ìûøè(ГЋГІГ¦Г*ГІГ*)"
Case WM_LBUTTONDBLCLK
'ÑþäГ* ГІГ» ìîæåøü ГўГ±ГІГ*ГўГЁГІГј êîä, êîòîðûé Г§Г*õî÷åøü:
Print "Г’Г» êëèêГ*ГіГ« 2 Г°Г*Г§Г* ГЇГ® ÈÊÎÍÊÅ(Ëåâîé ГЄГ*îïêîé)"
Case WM_RBUTTONDOWN
'ÑþäГ* ГІГ» ìîæåøü ГўГ±ГІГ*ГўГЁГІГј êîä, êîòîðûé Г§Г*õî÷åøü:
'Îáû÷Г*Г® ГЅГІГ® PopupMenu:
Print "ГЌГ*Г¦Г*ГІГ* ГЇГ°Г*ГўГ*Гї ГЄГ*îïêГ* ìûøè(ГЌГ*Г¦Г*ГІГ*)"
Case WM_RBUTTONUP
'ÑþäГ* ГІГ» ìîæåøü ГўГ±ГІГ*ГўГЁГІГј êîä, êîòîðûé Г§Г*õî÷åøü:
Print "ГЌГ*Г¦Г*ГІГ* ëåâГ*Гї ГЄГ*îïêГ* ìûøè(ГЋГІГ¦Г*ГІГ*)"
Case WM_RBUTTONDBLCLK
'ÑþäГ* ГІГ» ìîæåøü ГўГ±ГІГ*ГўГЁГІГј êîä, êîòîðûé Г§Г*õî÷åøü:
Print "Г’Г» êëèêГ*ГіГ« 2 Г°Г*Г§Г* ГЇГ® ÈÊÎÍÊÅ(ГЏГ°Г*âîé ГЄГ*îïêîé)"
End Select
End Sub
 
Private Sub Form_Terminate()
Shell_NotifyIcon NIM_DELETE, nid
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5
Похожие ответы