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

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

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

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

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

textual
Листинг программы
  1. Option Explicit
  2. Dim nid As NOTIFYICONDATA
  3.  
  4.  
  5. Private Declare Function RegisterWindowMessage Lib "user32" Alias "RegisterWindowMessageA" (ByVal lpString As String) As Long
  6.  
  7. Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean 'ГЉГ®Г*Г±ГІГ*Г*ГІГ» äëÿ äîáГ*âëåГ*ГЁГї, ГіГ¤Г*ëåГ*ГЁГї ГЁ ìîäèôèêГ*öèè ГўГ*ГёГҐГ© ГЁГЄГ*îêè:
  8. Private Const NIM_ADD = 0
  9. Private Const NIM_MODIFY = 1
  10. Private Const NIM_DELETE = 2
  11. 'ГЉГ®Г*Г±ГІГ*Г*ГІГ» îòâåòñòâåГ*Г*ûå Г§Г* ñîáûòèÿ ïðîèñõîäÿùèå ГўГ*óòðè ГЈГ°Г*Г*ГЁГ¶ ГЁГЄГ®Г*ГЄГЁ, Г°Г*ñïîëîæåГ*Г*îé Гў Traybar:
  12. Private Const WM_MOUSEMOVE = &H200
  13. Private Const NIF_MESSAGE = 1
  14. Private Const NIF_ICON = 2
  15. Private Const NIF_TIP = 4
  16. 'ГЉГ®Г*Г±ГІГ*Г*ГІГ» îòâåòñòâåГ*Г*ûå Г§Г* ñîáûòèÿ ïîâåäåГ*ГЁГї ìûøêè ïðîèñõîäÿùèå ГўГ*óòðè ГЈГ°Г*Г*ГЁГ¶ ГЁГЄГ®Г*ГЄГЁ, ' Г°Г*ñïîëîæåГ*Г*îé Гў Traybar:
  17. ':
  18. Private Const WM_LBUTTONDOWN = &H201
  19. Private Const WM_LBUTTONUP = &H202
  20. Private Const WM_LBUTTONDBLCLK = &H203
  21. 'Äëÿ ГЇГ°Г*âîé ГЄГ«Г*ГўГЁГёГЁ ìûøêè:
  22. Private Const WM_RBUTTONDOWN = &H204
  23. Private Const WM_RBUTTONUP = &H205
  24. Private Const WM_RBUTTONDBLCLK = &H206
  25. 'Äëÿ ñðåäГ*ГҐГ© ГЄГ«Г*ГўГЁГёГЁ ìûøêè:
  26. Private Const WM_MBUTTONDOWN = &H207
  27. Private Const WM_MBUTTONUP = &H208
  28. Private Const WM_MBUTTONDBLCLK = &H209
  29. 'Îáúÿâëÿåì ïåðåìåГ*Г*ГіГѕ îïðåäåëÿåìóþ ïîëüçîâГ*òåëåì:
  30. Private Type NOTIFYICONDATA
  31. cbSize As Long
  32. hWnd As Long
  33. uID As Long
  34. uFlags As Long
  35. uCallbackMessage As Long
  36. hIcon As Long
  37. szTip As String * 64
  38. End Type
  39.  
  40. Private Sub Command1_Click()
  41. nid.cbSize = Len(nid)
  42. nid.hWnd = Form1.hWnd
  43. nid.uID = vbNull
  44. nid.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
  45. nid.uCallbackMessage = WM_MOUSEMOVE
  46. nid.hIcon = Form1.Icon
  47. nid.szTip = "Ïðèâåò" & vbNullChar
  48. Shell_NotifyIcon NIM_ADD, nid
  49. End Sub
  50.  
  51. Private Sub Command2_Click()
  52. nid.hIcon = Form1.Icon
  53. nid.szTip = "Г„Г*ðîâ" & vbNullChar
  54. Shell_NotifyIcon NIM_MODIFY, nid
  55. End Sub
  56.  
  57. Private Sub Command3_Click()
  58. Shell_NotifyIcon NIM_DELETE, nid
  59. End Sub
  60.  
  61. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  62. 'Îáúÿâëÿåì ïåðåìåГ*Г*ûå:
  63.  
  64. Dim msg As Long
  65. Dim sFilter As String
  66.  
  67. msg = X / Screen.TwipsPerPixelX
  68. Select Case msg
  69. Case WM_LBUTTONDOWN
  70. 'ÑþäГ* ГІГ» ìîæåøü ГўГ±ГІГ*ГўГЁГІГј êîä, êîòîðûé Г§Г*õî÷åøü:
  71. Print "ГЌГ*Г¦Г*ГІГ* ëåâГ*Гї ГЄГ*îïêГ* ìûøè(ГЌГ*Г¦Г*ГІГ*)"
  72.  
  73. Case WM_LBUTTONUP
  74. 'ÑþäГ* ГІГ» ìîæåøü ГўГ±ГІГ*ГўГЁГІГј êîä, êîòîðûé Г§Г*õî÷åøü:
  75. Print "ГЌГ*Г¦Г*ГІГ* ëåâГ*Гї ГЄГ*îïêГ* ìûøè(ГЋГІГ¦Г*ГІГ*)"
  76. Case WM_LBUTTONDBLCLK
  77. 'ÑþäГ* ГІГ» ìîæåøü ГўГ±ГІГ*ГўГЁГІГј êîä, êîòîðûé Г§Г*õî÷åøü:
  78. Print "Г’Г» êëèêГ*ГіГ« 2 Г°Г*Г§Г* ГЇГ® ÈÊÎÍÊÅ(Ëåâîé ГЄГ*îïêîé)"
  79. Case WM_RBUTTONDOWN
  80. 'ÑþäГ* ГІГ» ìîæåøü ГўГ±ГІГ*ГўГЁГІГј êîä, êîòîðûé Г§Г*õî÷åøü:
  81. 'Îáû÷Г*Г® ГЅГІГ® PopupMenu:
  82. Print "ГЌГ*Г¦Г*ГІГ* ГЇГ°Г*ГўГ*Гї ГЄГ*îïêГ* ìûøè(ГЌГ*Г¦Г*ГІГ*)"
  83. Case WM_RBUTTONUP
  84. 'ÑþäГ* ГІГ» ìîæåøü ГўГ±ГІГ*ГўГЁГІГј êîä, êîòîðûé Г§Г*õî÷åøü:
  85. Print "ГЌГ*Г¦Г*ГІГ* ëåâГ*Гї ГЄГ*îïêГ* ìûøè(ГЋГІГ¦Г*ГІГ*)"
  86. Case WM_RBUTTONDBLCLK
  87. 'ÑþäГ* ГІГ» ìîæåøü ГўГ±ГІГ*ГўГЁГІГј êîä, êîòîðûé Г§Г*õî÷åøü:
  88. Print "Г’Г» êëèêГ*ГіГ« 2 Г°Г*Г§Г* ГЇГ® ÈÊÎÍÊÅ(ГЏГ°Г*âîé ГЄГ*îïêîé)"
  89. End Select
  90. End Sub
  91.  
  92. Private Sub Form_Terminate()
  93. Shell_NotifyIcon NIM_DELETE, nid
  94. End Sub

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


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

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

11   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы