Значок в трее не реагирует на манипуляции мышью - VB

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

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

Никто не сталкивался с такой проблемой: Значек в трее не реагирует на манипуляции мышью. Использую обычный класс, но самое интересное что не в классе дело, т.к. если использовать его на начальном этапе проектирования все работает Ок, но иногода, то ли я компоненты какие добавляю, то ли свойства меняю, перестает реагировать и все тут.

Решение задачи: «Значок в трее не реагирует на манипуляции мышью»

textual
Листинг программы
Dim WithEvents cTray As TrayIconAndBalloon
 
Private Sub cmdBalloon_Click()
cTray.DisplayBalloon txtBalloonTitle.Text, txtBalloonText.Text, NIIF_INFO ' + NIIF_NOSOUND
End Sub
 
'загрузка формы
Private Sub Form_Load()
 
   'запрещаем кнопки Удалить и Изменить, скрываем поле
      butModify.Enabled = False
      cmdBalloon.Enabled = False
      butDelete.Enabled = False
            
   'создаем инстанс объекта
      Set cTray = New TrayIconAndBalloon
      
End Sub
 
'выгрущка формы
Private Sub Form_Unload(Cancel As Integer)
 
   'убиваем объект
      Set cTray = Nothing
      
End Sub
 
'добавить иконку в трей
Private Sub butAdd_Click()
   
   'хендл окна
      cTray.hwnd = hwnd
   'иконка, что будет отображена в трее
      cTray.Icon = Icon
   'тултипс (всплывающая подсказка)
      cTray.ToolTipText = 'Просто иконка'
      
   'создаем иконку
      cTray.Add
   
   'разрешаем кнопки Удалить и Изменить, показываем поле, запрещаем кнопку Добавить
      butAdd.Enabled = False
      butModify.Enabled = True
      cmdBalloon.Enabled = True
      butDelete.Enabled = True
         
End Sub
 
'изменить иконку в трее
Private Sub butModify_Click()
 
   'меняем тултипс, можно поменять и Icon
      cTray.ToolTipText = edtToolTip.Text
      
   'меняем иконку
      cTray.Modify
      
End Sub
 
'удалить иконку из трея
Private Sub butDelete_Click()
 
   'удаляем иконку
      cTray.Delete
      
   'запрещаем кнопки Удалить и Изменить, скрываем поле, разрешаем кнопку Добавить
      butAdd.Enabled = True
      butModify.Enabled = False
      cmdBalloon.Enabled = False
      butDelete.Enabled = False
         
End Sub
 
'ловим ивенты на форме
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
 
   'передаем данные в объект
      cTray.CallEvent X, Y
      
End Sub
 
'ивент срабатывает при действиях на иконке в трее
Private Sub cTray_OnIcon(MouseButton As Integer)
   'обладочная информация
      Debug.Print MouseButton
   
   'левый двойной клик
   '   If MouseButton = TRAYICON_MOUSE_LEFTDBLCLICK Then MsgBox 'LeftDoubleClick on TrayIcon'
   'отжатие правой кнопки мыши
      If MouseButton = TRAYICON_MOUSE_RIGHTUP Then cTray.CallPopupMenu Me, pmnuTray, 2, , , mnuHello
      
End Sub

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


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

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

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