Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вопросик по Tray / 5 сообщений из 5, страница 1 из 1
02.07.2005, 12:39:02
    #33146286
Azik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросик по Tray
Подскажите кто знает как вообще делается так чтобы программа работала в трее. Какие есть компоненты для этого если есть у кого скинте буду признателен.
...
Рейтинг: 0 / 0
02.07.2005, 13:27:03
    #33146313
Aklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросик по Tray
Нажми поиск -> tray
...
Рейтинг: 0 / 0
02.07.2005, 13:54:26
    #33146330
Toking
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросик по Tray
Лучше использовать апишную функцию Shell_NotifyIcon.

Именно она добавляет/удаляет иконку в системный трей ...

_______________________________
нет ничего невозможного ... :-)
...
Рейтинг: 0 / 0
03.07.2005, 16:34:40
    #33146904
AndreyMp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросик по Tray
А вообще советую почитать ARI-guide, найдешь много интересного и про трей тоже.
...
Рейтинг: 0 / 0
05.07.2005, 06:13:32
    #33149104
programmator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросик по Tray
В модуль
'трей
Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
Private Const NIM_ADD = &H0
Private Const NIM_MODIFY = &H1
Private Const NIM_DELETE = &H2
Private Const WM_MOUSEMOVE = &H200
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 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

Dim theForm As NOTIFYICONDATA
'трей
Private Declare Function ShellExecute& Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal _
lpOperation As String, ByVal lpFile As String, ByVal _
lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long)
Private Declare Function GetDesktopWindow Lib "user32" _
() As Long
Const SW_SHOWNORMAL = 1


форм лоад
'трей начало
Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
' запись размера структуры
theForm.cbSize = Len(theForm)
' Установка хедера иконки
theForm.hwnd = picNotifier.hwnd
theForm.hIcon = Me.Icon
theForm.uId = 1&
'Установка Флажков
'в данном случие показывать иконку,
' отображать TOOLTIP
' передовать события в форму
theForm.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
'Источник событий мышка
theForm.ucallbackMessage = WM_MOUSEMOVE
'Строка тултипа
theForm.szTip = "WinRouteMonitor" & Chr$(0)
Shell_NotifyIcon NIM_ADD, theForm
Me.Hide
App.TaskVisible = False
'трей конец

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
' We also need to remove it when the program
' is ended.
' Change theForm's cbSize to theForm's length.
theForm.cbSize = Len(theForm)
' Change theForm's hWnd to picNotifier's hWnd.
theForm.hwnd = picNotifier.hwnd
' Change theForm's uId to 1&.
theForm.uId = 1&
' Remove it from the TaskBar.
Shell_NotifyIcon NIM_DELETE, theForm
End Sub

Private Sub picNotifier_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Обработка событий
Static Rec As Boolean, Msg As Long
Msg = X / Screen.TwipsPerPixelX
If Rec = False Then ' Чтоб не повторять Запуск
Rec = True
Select Case Msg
'Если DoubleClick
Case WM_LBUTTONDBLCLK:
'conMinimized = 0
Me.Show
WindowState = 0
conMinimized = 0
'Me.Visible = True
'Если левая Кнопка нажата
Case WM_LBUTTONDOWN:
'Если левая Кнопка Отжата
Case WM_LBUTTONUP:
'Правая кнопка Click
Case WM_RBUTTONDBLCLK:
'Если Правая Кнопка нажата
Case WM_RBUTTONDOWN:
'Если Правая Кнопка Отжата
Case WM_RBUTTONUP:
PopupMenu mnuPopMenu
End Select
Rec = False
End If

End Sub


Public Sub Modify() - смена иконки
Dim ret As Long
'заполняем структурку
'Me.Icon = LoadPicture(App.Path & "\1.ico")
Me.Icon = Me.Image1.DragIcon
theForm.hIcon = Me.Icon
theForm.szTip = "WinRouteMonitor" & Chr$(0)
theForm.uFlags = NIF_TIP + NIF_ICON
theForm.cbSize = Len(theForm)
'вызываем функцию API
ret = Shell_NotifyIcon(NIM_MODIFY, theForm)
End Sub


И больше не задовай этот вопрос .
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вопросик по Tray / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]