Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 19.12.2007
Сообщений: 33

Создание popup menu для SysTray иконок. Как?

19.08.2008, 14:28. Показов 1688. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет!
Хочу сначала оговориться:
1) Я не очень здорово знаю Visual C++, можно сказать только учусь.
2) Я уже читал всю доступную мне документацию, и ее мне не хватило для решения вопроса.
3) На форуме тоже искал, но не нашел.

Итак:

Наверное все видели popup menu вызываемые click'ом по иконке из tray области.
Вопрос в том как это реализуется.
Я создал иконку в tray'е так:
C++
1
2
3
4
5
6
7
8
9
10
    NOTIFYICONDATA nf;
    nf.hWnd = m_hWnd;
    nf.uID = NULL;
    nf.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
    nf.uCallbackMessage = WM_MYICONNOTIFY;
    strcpy(nf.szTip,'Bla-bla-bla');
    HICON hIcon;
    hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
    nf.hIcon = hIcon;
    Shell_NotifyIcon(NIM_ADD,&nf);
Если я все правильно понимаю, то обработка всех сообщений приходящих к иконке происходит с помощью ф-ции вида:
C++
1
        OnIcon(WPARAM wp, LPARAM lp)
и вроде как в lp путем приведения к чему-то там можно получить координаты клика и все такое...
Вопрос первый как это сделать? Если можно поподробнее (в идеале код).

Вопрос второй: нужно после этого совершать какие-либо хитрые телодвижения для создания popup'а?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.08.2008, 14:28
Ответы с готовыми решениями:

Как отключить popup menu по правой клавише мыши для TextBox? (0)
Как отключить popup menu по правой клавише мыши для TextBox?

Access2000: создание своего popUp menu и вызов его из VBA
Создал я свой ToolBar так: Right click по панели инструментов, выбрал из появившегося popup пункт Настройка, во вкладке 'Панели...

сочетание клавиш для popup menu
как к action context menu приписать сочетание клавиш? этот код не работает QAction *selectToComplaint= new...

3
0 / 0 / 0
Регистрация: 28.04.2008
Сообщений: 6
20.08.2008, 11:46
Обработка мессаджа WM_MYICONNOTIFY:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
   switch(Msg.LParam)
    {
        case WM_RBUTTONUP:
            if (GetCursorPos(&MousePos))
            {
                // тут можешь показать popup из (MousePos.x, MousePos.y)
            }
            break;
        case WM_LBUTTONDBLCLK:
            // ...;
        break;
        case WM_LBUTTONUP:
            //...
            break;
        default:
            break;
    }
примерно так...
0
0 / 0 / 0
Регистрация: 19.12.2007
Сообщений: 33
20.08.2008, 14:28  [ТС]
Thanks!

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

Спасибо за отклик
0
0 / 0 / 0
Регистрация: 19.12.2007
Сообщений: 33
20.08.2008, 16:44  [ТС]
Млин! То ли я лох полнейший, то ли чего не понимаю но у меня popup менюшки как-то странно выглядят! Узкий столбик высотой с количество элементов шириной пикселов 10-20 и все никаких надписей!

код такой:
C++
1
2
3
4
5
6
7
8
9
10
11
void CTestpopupDlg::OnRButtonUp(UINT nFlags, CPoint point) 
{
    CMenu popup;
    
    ClientToScreen(&point);
    
    popup.LoadMenu(IDR_TESTMENU);
    popup.TrackPopupMenu(0,point.x,point.y,this);
 
    CDialog::OnRButtonUp(nFlags, point);
}
В чем может быть трабл а?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.08.2008, 16:44
Помогаю со студенческими работами здесь

Как задать обработчик динамическим Items в PopUp Menu?
Здравствуйте! Использую Delphi 6. Так создаю элементы меню. Правильно ли так вообще создавать их так? PopMenu :=...

popup menu
вопрос такой - на форме лижит панел (pnl1), у нее в свойствах popupMenu - pm1. На этой панельке есть другие компоненты - как мне...

Popup menu
Ребят подскажите.В общем использую popup menu и у одного из его строк есть submenu.Как программно добавлять новые строки в это submenu??? ...

Popup menu
Как создать Popup menu на C# и чтобы оно появлялось при нажатии на правую кнопку! :(

Popup Menu
Ситуация такая, необходимо написать popup меню, для win машин. Наткнулся на пару глюков с клиентом 8,5: 1. GetActiveWindow не работает....


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru