Ranking de casas de apuestas
  Разделы
Главная

Windows API
Реестр
MS Access
Visual Basic
Download
Форум
Гостевая книга
Ссылки

E-mail

Партнерская программа WWW.PORTA.RU (on-line магазин портативной аудио, видео, фототехники). Самая щедрая, самая честная, самая популярная. Приглашаем всех веб-мастеров к участию!



Submitter.ru - Free promoting
Visual Basic

вернуться назад Как добавить/удалить иконку в SysTray?
' Для работы необходимо в форму добавить:
' две кнопки с именами Command1 и Command2,
' а также Microsoft Common Dialog Control 6.0 (SP3)

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

' Эти константы нужны для добавления, обновления
' и удаления иконки в SysTray

Private Const NIM_ADD = &H0
Private Const NIM_MODIFY = &H1
Private Const NIM_DELETE = &H2

' Следующая константа нужна для показа всплывающей подсказки
' когда курсор наводится на иконку в SysTray

Private Const WM_MOUSEMOVE = &H200

' Принимаем значения констант NOTIFYICONDATA
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


Private Sub Command1_Click()
   ' добавляем иконку от формы в SysTray
   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
   ' добавим иконку в SysTray
   Shell_NotifyIcon NIM_ADD, nid
End Sub


Private Sub Command2_Click()
   'Удаляем иконку из SysTray
   Shell_NotifyIcon NIM_DELETE, nid
End Sub


Private Sub Form_Load()
   'добавим названия действий на кнопки
   Command1.Caption = "Добавить иконку"
   Command2.Caption = "Удалить иконку"
End Sub

Private Sub Form_Terminate()
   ' при закрытии программы удаляем иконку из SysTray
   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

      Case WM_LBUTTONUP

      Case WM_LBUTTONDBLCLK
         CommonDialog1.DialogTitle = "Выбор иконки"
         sFilter = "Иконка (*.ico)|*.ico"
         sFilter = sFilter & "|Все файлы (*.*)|*.*"
         CommonDialog1.Filter = sFilter
         CommonDialog1.ShowOpen
         If CommonDialog1.FileName <> "" Then
            Form1.Icon = LoadPicture(CommonDialog1.FileName)
            nid.hIcon = Form1.Icon
            Shell_NotifyIcon NIM_MODIFY, nid
         End If

      Case WM_RBUTTONDOWN
         Dim ToolTipString As String
         ToolTipString = InputBox("Введите текст новой всплывающей подсказки:", _
            "Смена текста всплывающей подсказки")
         If ToolTipString <> "" Then
            nid.szTip = ToolTipString & vbNullChar
            Shell_NotifyIcon NIM_MODIFY, nid
         End If

      Case WM_RBUTTONUP

      Case WM_RBUTTONDBLCLK

   End Select
End Sub


   К сожалению, я не помню, где же в интернете этот пример нашел. Если кто-нибудь знает автора, пожалуйста, напишите мне.


Как добавить/удалить иконку в SysTray? (4 853 байт)