Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Type NOTIFYICONDATA и BallonToolTip VB6 Добавлено: 13.08.11 22:35  

Автор вопроса:  Smith | ICQ: adamis@list.ru 
Не нашел в инэте нормального примера BallonToolTip

Есть только один модуль SystemTray.bas в котором более-менее полно раскрыта структура, но нет примеров использования.

[SOURCE]'GUID представляет собой 128-разрядное значение, состоящее из одной группы из 8 шестнадцатеричных цифр, за которой следует три группы по 4 шестнадцатеричных цифр каждая и одна группа из 12 шестнадцатеричных цифр. (Пример: 6B29FC40-ca47-1067-B31D-00DD010662DA)
Private Type GUID
Data1 As Long 'Определяет первые 8 шестнадцатеричных цифр GUID
Data2 As Integer 'Задает первую группу из 4 шестнадцатеричных цифр
Data3 As Integer 'Задает вторую группу из 4 шестнадцатеричных цифр
Data4(7) As Byte 'Первые 2 байта: 3-я группа цифр. Следующие 6 байт: последние 12 цифр
End Type

'Структура содержит информацию о том, что система должна сделать в системной области
Private Type NOTIFYICONDATA
'Размер этой структуры, в байтах
cbSize As Long


'Дескриптор окна, которое будет получать системные уведомления, связанные с иконкой в системной области
'Shell использует hWnd вместе с uID, чтобы определить иконку нужную для работы Shell_NotifyIcon
'Если guidItem указано, hWND не требуется
hWnd As Long


'Определяемый приложением идентификатор иконки
'Shell использует либо hWnd плюс UID либо guidItem чтобы определить иконку нужную для работы Shell_NotifyIcon
'Вы можете иметь несколько иконок, связанных с одним hWnd, присваивая каждой различные UID
'Если guidItem указано, UID игнорируется
uID As Long


'Флаги указывают элементы, содержащие достоверные данные, или предоставляют дополнительную информацию для BallonToolTip о том, как она выглядит
'Если вы установите флаг NIF_INFO, стандартные всплывающие подсказки ToolTips заменяется на BallonToolTip
'NIF_MESSAGE uCallbackMessage является действующими
'NIF_ICON hICON является действующими
'NIF_TIP szTip является действующими
'NIF_STATE dwState и dwStateMask являются действующими (Windows 2000 и более поздние)
'NIF_INFO szInfo, uTimeout, szInfoTitle и dwInfoFlags являются действующими (Windows 2000 и более поздние)
'NIF_GUID в Windows XP и более поздних версиях зарезервировано
'NIF_REALTIME если подсказка не может быть отображена немедленно, то отбросить его (Windows Vista и более поздние)
'NIF_SHOWTIP использовать стандартные подсказки (Windows Vista и более поздние)
uFlags As Long


'Определяемый приложением идентификатор сообщений. Система использует этот идентификатор для отправки уведомлений в окно, определенное в hWND
'Эти уведомления отправляются, когда с иконкой происходят события, выбор иконки, события мыши или клавиатуры
'Когда uVersion= NOTIFYICON_VERSION_0 или NOTIFYICON_VERSION_3 (Windows XP и ранние версии)
'Параметр WPARAM содержит идентификатор иконки, в которой произошло событие, этот идентификатор может быть 32-битным
'Параметр LPARAM содержит уведомления мыши или клавиатуры связанные с событием. При перемещении мыши над иконкой LPARAM равен WM_MOUSEMOVE

'Когда uVersion=NOTIFYICON_VERSION_4 (Windows Vista и более поздние) окно получает системные уведомления, но значения LPARAM и WPARAM уже другие:
'LOWORD (LPARAM) содержит уведомления событий, такие как NIN_BALLOONSHOW, NIN_POPUPOPEN или WM_CONTEXTMENU
'HIWORD (LPARAM) содержит идентификатор иконки, этот идентификатор может быть 16-битным
'GET_X_LPARAM (WPARAM) возвращает координаты X для уведомления событий NIN_POPUPOPEN, NIN_SELECT, NIN_KEYSELECT, и все сообщения от мыши между WM_MOUSEFIRST и WM_MOUSELAST
'Если любое из этих сообщений генерируется клавиатурой, то WPARAM возвращает координаты левого верхнего угла иконки. Для всех остальных сообщений параметр WPARAM не определен
'GET_Y_LPARAM (WPARAM) возвращает координаты Y для уведомления событий так же, как это определено для координаты X.
uCallbackMessage As Long


'Дескриптор иконки, которая будет добавлена, изменена или удалена
'Чтобы избежать искажения иконки учитывайте, что иконки системной области имеют различные параметры в разных версия ОС Microsoft Windows
'Windows 95, Windows 98 и Microsoft Windows NT 4.0 поддерживают иконки до 4 бит на пиксель (BPP)
'Windows Millennium Edition (Windows Me) и Windows 2000 поддерживают иконки с глубиной цвета рабочего стола (24 бита)
'Windows XP и более поздние поддерживают значки до 32 BPP
'Иконки 16x16 пикселей масштабируются в системной области в большем размере для большего разрешения (DPI), результат получается малопривлекательным
'Рекомендуется иметь в файле ресурсов иконки размером от 16x16 пикселей и больше. Использование LoadIconMetric обеспечить загрузку правильной иконки и надлежащее масштабирование
hIcon As Long

'Строка, завершаемая vbNullChar, которая определяет текст для стандартных ToolTip
'Она может быть максимум 64 символа, включая завершающий нулевой символ
'Для Windows 2000 (Shell32.dll версии 5.0) и более поздних версий szTip может содержать не более 128 символов, включая завершающий нулевой символ
szTip As String * 128


'Состояние значка. Есть два флага, которые могут быть установлены независимо друг от друга: NIS_HIDDEN и NIS_SHAREDICON
'Для Windows 2000 (Shell32.dll версии 5.0) и более поздних версий
dwState As Long


'Значение, которое определяет, какие биты члена dwState извлекаются или изменяются
'Возможные значения те же, что и для dwState. Например, NIS_HIDDEN позволит (извлечь/изменить) лишь состояние флага HIDDEN в то время как байты флага SHAREDICON игнорируется независимо от его значения
'Для Windows 2000 (Shell32.dll версии 5.0) и более поздних версий
dwStateMask As Long


'Строка, завершаемая vbNullChar, которая определяет текст сообщения BallonToolTip
'Она может быть максимум 256 символов, включая завершающий нулевой символ
'Для удаления подсказки, установите флаг NIF_INFO в uFlags и установите szInfo в vbNullString
'Для Windows 2000 (Shell32.dll версии 5.0) и более поздних версий
szInfo As String * 256


'uTimeout
'Этот элемент устарел в Windows Vista
'Теперь uTimeout основывается на системных настройках по умолчанию

'Совместно с uVersion, значение тайм-аута в миллисекундах для отображения BalloonToolTip
'Система обеспечивает минимальные и максимальные значения тайм-аута отображения
'Слишком большое значение в uTimeout ограничивается «максимальным значением»
'Слишком малое значение ограничивается «минимальным значением» по умолчанию
'Сейчас значения по умолчанию установлены на уровне 10 секунд и 30 секунд соответственно

'uVersion
'Для Windows 2000 и более поздних версий. Совместно с uTimeout
'Указывает, используется ли интерфейс Shell иконки уведомления Windows 95 или Windows 2000
'Более подробную информацию о различиях поведений см. Shell_NotifyIcon
'Этот элемент работает только при использовании Shell_NotifyIcon для отправки NIM_SETVERSION сообщений

'uVersion=NOTIFYICON_VERSION_0 интерфейс Shell Windows 95 (версии до Windows 2000)
'uVersion=NOTIFYICON_VERSION интерфейс Shell Windows 2000 (Windows 2000 и более поздние)
'uVersion=NOTIFYICON_VERSION_4 интерфейс Shell Windows Vista (Windows Vista и более поздние)
uTimeoutAndVersion As Long


'Строка, завершаемая vbNullChar, которая определяет заголовок (жирным шрифтом) сообщения BallonToolTip
'Она может быть максимум 64 символа, включая завершающий нулевой символ
'Для Windows 2000 (Shell32.dll версии 5.0) и более поздних версий
szInfoTitle As String * 64

'Флаги, которые могут быть установлены, чтобы добавить иконку в BallonToolTip (слева от заголовка)
'Если szInfoTitle нулевой длины, то значок не отображается
'NIIF_NONE, NIIF_INFO, NIIF_WARNING, NIIF_ERROR
'Для Windows 2000 (Shell32.dll версии 5.0) и более поздних версий
dwInfoFlags As Long


'Windows 7 и более поздние версии. Зарегистрированный идентификатор иконки GUID
'Этот элемент переопределяет значение uID и является рекомендуемым методом идентификации
'В Windows XP и Windows Vista зарезервировано
'Для Windows XP (Shell32.dll версии 6.0) и более поздних версий
guidItem As GUID


'Дескриптор иконки BallonToolTip, которая может быть назначена независимо от иконки в системной области
'Если этот элемент не является NULL и флаг NIIF_USER установлен элементе dwInfoFlags, то этот значок используется как иконка BallonToolTip
'Если этот элемент равен NULL, то осуществляется наследование поведения
'Для Windows Vista (Shell32.dll версии 6.0.6) и более поздних версий
hBalloonIcon As Long

End Type[/SOURCE]

Попробую написать что-нибудь исходя из этого описания

Ответить

  Ответы Всего ответов: 1  

Номер ответа: 1
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #1 Добавлено: 13.08.11 23:39
http://www.rolbe.com/download.php?file=vb/SystemTray.bas
в этот модуль дописать процедуру
  1. Public Sub set_system_tray_ballontip(text As String, title As String)
  2.     If NOTIFYICONDATA_SIZE > NOTIFYICONDATA_V1_SIZE Then
  3.         nid.szInfo = text & vbNullChar
  4.         nid.szInfoTitle = title & vbNullChar
  5.         nid.uFlags = NIF_INFO
  6.         nid.dwInfoFlags = NIIF_INFO
  7.         nid.uTimeoutAndVersion = NOTIFYICON_VERSION
  8.         Call Shell_NotifyIcon(NIM_MODIFY, nid)
  9.     End If
  10. End Sub

и будет счастье

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам