FreeBasic
Главная
Вход
Регистрация
Воскресенье, 24.09.2017, 18:36Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » WinAPI » WinApi в freebasic » как создать всплывающее сообщение в области уведомлений
как создать всплывающее сообщение в области уведомлений
electrikДата: Воскресенье, 27.03.2016, 18:07 | Сообщение # 1
Майор
Группа: Друзья
Сообщений: 90
Репутация: 3
Статус: Offline
нужно сделать стандартную всплывающую подсказку. тип этой подсказки, такой,  например, когда говорится о не достатке свободного места, или оборудование извлечено, или utorrent выкидывает сообщение, файл такой-то закачан.
в инете, предлагают что-то с трейной иконкой мудрить, но думаю, это не совсем то. мне надо, такие подсказки, подобные очень часто в wwindows xp отключали, чтоб не надоедали.
видел пример с тултипом, но видимо это самопальная какая-то, моя программа чтения экрана не хватает эту подсказку.
 
haavДата: Понедельник, 28.03.2016, 07:53 | Сообщение # 2
Генерал-лейтенант
Группа: Администраторы
Сообщений: 768
Репутация: 33
Статус: Offline
Тебе нужно что-то типа этого?

Код
#Include "window9.bi"

Dim As HWND hWnd

hwnd=OpenWindow("",10,10,300,300)

AddSysTrayIcon(1,hwnd,LoadIcon(0,IDI_WINLOGO),"SYSTRAY приложение")

MessageSysTrayIcon(1,hwnd,"Сообщение", "Это SysTray сообщение")

Do

       Var   ev=WaitEvent

       If ev=EventClose Then

               Deletesystrayicon(1)

               Exit do

       EndIf

Loop


Если да, то вот исходник функций, отвечающих за SysTray и вывод всплывающего сообщения (взято из моей библиотеки window9 [файл AddSysTrayIcon.bas]):

Код
#Include once "windows.bi"
#include once "win/shellapi.bi"

Dim shared note as NOTIFYICONDATA

Function AddSysTrayIcon(ByVal NumberSysTray As Integer,ByVal hwnd As HWND,ByVal icon As HICON,ByVal ToolTipSysTray As String) As Integer export
    note.cbSize = sizeof(NOTIFYICONDATA)
    note.hwnd = hWnd
    note.uID = NumberSysTray
    note.uFlags = NIF_ICON+NIF_MESSAGE+NIF_TIP
    note.uCallbackMessage = 1029
    note.hIcon = icon
    note.szTip= ToolTipSysTray
    Return Shell_NotifyIcon (NIM_ADD,@note)
End Function

Function ReplaceSysTrayIcon(ByVal NumberSysTray As Integer,ByVal icon As HICON,ByVal ToolTipSysTray As String) As Integer export
    note.cbSize = sizeof(NOTIFYICONDATA)
    note.uID = NumberSysTray
    note.uFlags = NIF_ICON+NIF_MESSAGE+NIF_TIP
    note.uCallbackMessage = 1029
    note.hIcon = icon
    note.szTip= ToolTipSysTray
    Return Shell_NotifyIcon (NIM_MODIFY,@note)
End Function

Function DeleteSysTrayIcon(ByVal NumberSysTray As Integer) As Integer export
    note.cbSize = sizeof(NOTIFYICONDATA)
    note.uID = NumberSysTray
    Return Shell_NotifyIcon (NIM_DELETE,@note)
End Function

Function MessageSysTrayIcon(ByVal NumberSysTray As Integer,ByVal hwnd As HWND,Title As String,Text As String,Timeout As Integer = 5000,ByVal icon As HICON = 0 , ByVal TypeIcon As Integer = NIIF_INFO) As Integer export
    note.cbSize = sizeof(NOTIFYICONDATA)
    note.hwnd = hWnd
    note.uID = NumberSysTray
    note.uFlags = IIf (icon<>0,NIF_INFO+NIF_ICON,NIF_INFO)
    note.hIcon = icon
    note.szInfo = Text
    note.uTimeout = Timeout
    note.szInfoTitle = Title
    note.dwInfoFlags = TypeIcon
    Return Shell_NotifyIcon (NIM_MODIFY,@note)
End Function


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
electrikДата: Среда, 30.03.2016, 00:50 | Сообщение # 3
Майор
Группа: Друзья
Сообщений: 90
Репутация: 3
Статус: Offline
спасибо, дома гляну

Добавлено (30.03.2016, 00:50)
---------------------------------------------
ага, это именно то, всё работает. спасибо!

 
Форум » WinAPI » WinApi в freebasic » как создать всплывающее сообщение в области уведомлений
Страница 1 из 11
Поиск: