Показать сообщение отдельно
Старый 10.01.2009, 15:13   #32  
rkorchagin is offline
rkorchagin
Участник
 
81 / 69 (3) ++++
Регистрация: 26.09.2006
Небольшой комментарий:

в 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;
}