Проблема с PopupMenu
От: Аноним  
Дата: 21.02.11 15:22
Оценка:
Нужно показать для иконки в трее локальное меню. Пробовал сделать так:
   HMENU hMenu = CreatePopupMenu();
   MENUITEMINFO mi;
   memset( &mi, 0, sizeof(MENUITEMINFO) );
   mi.cbSize = sizeof(MENUITEMINFO);
   mi.fType = MFT_STRING;
   mi.fMask = MIIM_ID|MIIM_TYPE;

   mi.cch = 1;
   mi.wID = 1;
   mi.dwTypeData = "1";
   InsertMenuItem( hMenu, 0, FALSE, &mi );
   mi.wID = 2;
   mi.dwTypeData = "2";
   InsertMenuItem( hMenu, 0, FALSE, &mi );

   POINT pos;
   GetCursorPos( &pos );
   UINT cmd = ::TrackPopupMenuEx( hMenu, TPM_NONOTIFY|TPM_RETURNCMD, pos.x, pos.y, mWindow, NULL );
   DestroyMenu( hMenu );

Меню показывается, при выборе закрывается и возвращает корректный результат.
Но никак нельзя отказаться от выбора, т.е. по Esc и по клику вне меню оно не закрывается, кроме того аналогично перестают закрываться меню других приложений.
Как сделать возможность отказа от выбора?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.