Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> popup меню, не пропадает 
:(
    Опции темы
maxim1000
Дата 25.8.2004, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 17
Всего: 110



случилась такая вот ситуация:

добавил в tray свою иконку
отлавливаю нажатия кнопок мыши
при нажатии на правую показываю popup меню
при выборе пунктов меню что-то делаю
для отлова сообщений от иконки и меню использую обычное окно (только не показываю его)
все - на WinAPI
и как ни странно, все работает
----
теперь, собственно, проблема:
когда я нажимаю куда-то не на меню, по идее, оно должно пропадать (по крайне мере, оно пропадает в большинстве других приложений, и это довольно-таки удобно)
а мое меню - не пропадает
под Windows98 при нажатии в точку, не принадлежащую меню, оно как бы уничтожается, но на экране это отражается только тогда, когда мышка попадает на область, на которой меню было нарисовано
под WindowsXP меню вообще уничтожается только при выборе какого-то пункта
вопрос: как заставить меню пропадать (если вручную - как отловить момент нажатия мышки снаружи меню)?


--------------------
qqq
PM WWW   Вверх
Олег М
Дата 25.8.2004, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 436
Регистрация: 10.6.2004
Где: Москва

Репутация: 7
Всего: 7



Покажи как создаёшь меню
PM MAIL ICQ   Вверх
maxim1000
Дата 25.8.2004, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 17
Всего: 110



Код
   //create popup menu
   menu=CreatePopupMenu();
   AppendMenu(menu,MF_STRING,1000,"events.txt");
   AppendMenu(menu,MF_STRING,1001,"close");

Код
     //show popup menu
     POINT cursor;
     GetCursorPos(&cursor);
     TrackPopupMenuEx(menu,TPM_RIGHTALIGN | TPM_BOTTOMALIGN,cursor.x,cursor.y,WindowHandler,0);



--------------------
qqq
PM WWW   Вверх
_hunter
Дата 25.8.2004, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



нужно так делать:
Код
SetForegroundWindow(hWnd);
TrackPopupMenuEx(menu,TPM_RIGHTALIGN | TPM_BOTTOMALIGN,cursor.x,cursor.y,WindowHandler,0); PostMessage(hWnd, WM_NULL, 0, 0);

где hWnd -- твое окно

( это у МС фича такая smile.gif )


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
maxim1000
Дата 25.8.2004, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 17
Всего: 110



да-а-а...
оригинальная конструкция... (еще и работающая)
спасибо


--------------------
qqq
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0749 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.