0 / 0 / 1
Регистрация: 25.08.2014
Сообщений: 91
1

Tray icon для консольного окна

11.06.2019, 14:35. Показов 1710. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Народ привет!

Собственно сабж. Делаю следующим образомЖ
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
int wmain(int argc, wchar_t* argv[])
{
    NOTIFYICONDATA tr_icon_data;
    tr_icon_data.cbSize = sizeof(tr_icon_data);
    tr_icon_data.hWnd = NULL;
    tr_icon_data.uID = 0x10;
    tr_icon_data.uFlags = NIF_ICON | NIF_TIP | NIF_MESSAGE;
    tr_icon_data.hIcon = LoadIcon(NULL, IDI_INFORMATION);
    tr_icon_data.uCallbackMessage = WM_TRAYNOTIFY;
    Shell_NotifyIcon(NIM_ADD, &tr_icon_data);
 
    return 0;
}
Иконка появляется, но при наведении на неё исчезает. Что бы это могло быть?
И ещё, могу ли сделать обработчик событий без окна? Или его надо будет создавать и прятать потом?

Заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.06.2019, 14:35
Ответы с готовыми решениями:

Tray icon
Собственно вопрос до смешного простой, но гугл не дал результатов Кинул на форму Trayicon а что ...

Как создать Tray Icon
Подскажите пожалуйста как добавить tray icon с парочкой фукнций для Win Form Application?

Как поместить ярлычок программы в Icon Tray при запуске?
Привет всем! Подскажите, а можно ли сделать так, что при наступлении какого-либо события...

tray без окна возможен ли?
пишу прогу чтото типа download'ера окно там нафик не надо все можно зделать с помощью трея и...

6
6577 / 4562 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
11.06.2019, 15:14 2
Цитата Сообщение от Igor7117 Посмотреть сообщение
Иконка появляется, но при наведении на неё исчезает. Что бы это могло быть?
Наверное, потому, что у тебя завершается процесс, который создал эту иконку
Сделай какой-нибудь _getch() перед return
0
0 / 0 / 1
Регистрация: 25.08.2014
Сообщений: 91
11.06.2019, 15:26  [ТС] 3
Делал конечно.

проблема вот тут:
tr_icon_data.hWnd = NULL;

если подаю HWND окна живого, то всё норм
0
6577 / 4562 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
11.06.2019, 15:30 4
Лучший ответ Сообщение было отмечено Igor7117 как решение

Решение

Цитата Сообщение от Igor7117 Посмотреть сообщение
Делал конечно.
проблема вот тут:
tr_icon_data.hWnd = NULL;
если подаю HWND окна живого, то всё норм
Передай ему ::GetConsoleWindow();
Но вообще, лучше всё-таки сделать оконное приложение и спрятать окно
1
0 / 0 / 1
Регистрация: 25.08.2014
Сообщений: 91
11.06.2019, 15:54  [ТС] 5
так, спасибо!
Сейчас попробую!

Добавлено через 18 минут
Можно ещё спросить как прикрутить обработчик иконки к консольному окну?

::GetConsoleWindow() работает
0
6577 / 4562 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
11.06.2019, 15:58 6
Цитата Сообщение от Igor7117 Посмотреть сообщение
Можно ещё спросить как прикрутить обработчик иконки к консольному окну?
Точно не знаю. Но, думаю, можно подменить ему оконную процедуру, при помощи SetWindowLong - GWL_WNDPROC
0
0 / 0 / 1
Регистрация: 25.08.2014
Сообщений: 91
11.06.2019, 16:04  [ТС] 7
Покапаюсь в этом направлениию
Ещё раз спасибо!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.06.2019, 16:04
Помогаю со студенческими работами здесь

Открытие окна над tray
Добрый день,подскажите,как в WPF сделать открытие второго окна над треем? Просто координатами не...

Программа для убирания/добавления консольного окна модификацией PE EXE
Моя программа для убирания/добавления консольного окна. Зачем может быть нужна. Бывают случаи,...

Как избавится от родительского консольного окна при создание WinAPI окна
добрый день. использую DEV-C++, но так понимаю разницы нет, какая у нас IDE. создаём просто...

Нет консольного окна
Суть программы токова: должно появляться консольное окно и там работает программа, но такого не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru