Небольшой комментарий:
в 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;
}