![]() |
#4 |
Участник
|
Небольшой комментарий:
в 4-ой аксапте когда попуп меню строится через PopuMenu класс - сразу теряется стиль меню (Office 2003), а когда вызывется super(handle) - то меню выглядит как надо. Поэтому когда потребовалось добавить свой пункт меню, причём в определённую позицию (PopupMenu.insertItem - на самом деле делает AppendMenu - добавление в конце) пришлось прямо на контроле (StringEdit ячейке Grid) писать: X++: //TE-rko public int showContextMenu(int _menuHandle) { #WinApi #define.filterByLocaLang(100) #define.UserDLL('USER32') int selection; DLL _winApiDLL = new DLL(#UserDLL); DLLFunction _insertMenu = new DLLFunction(_winApiDLL, 'InsertMenuW'); ; _insertMenu.returns(ExtTypes::DWord); _insertMenu.arg(ExtTypes::DWord, ExtTypes::DWord, ExtTypes::DWord, ExtTypes::DWord, ExtTypes::WString); _insertMenu.call(_menuHandle, 2, #MF_BYPOSITION + #MF_STRING, #filterByLocaLang, "Filter by local name"); selection = super(_menuHandle); switch (selection) { case #filterByLocaLang: element.filterByLocalLang(); //моя реакция на меню break; } return selection; } |
|