При нажатии на кнопку "Закрыть", свернуть программу в трей - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д