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