AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Администрирование
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.11.2006, 13:48   #5  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Была. Вот она:

X++:
#winapi
#define.MF_BYPOSITION(0x400)
static client void DeleteUserMenu()
{
    int         wnd;
    int         hMenu;
    int         cnt, i;
    str         name;
    dll         _dll = new dll("USER32");
    DllFunction GetMenu = new DllFunction(_dll, "GetMenu");

    str getMenuItemString(HWND popupHandle, int id)
    {
        DLLFunction _getMenuString    = new DLLFunction(_DLL, "GetMenuStringA");

        Binary b = new Binary(81);

        _getMenuString.returns(ExtTypes::DWord);
        _getMenuString.arg(ExtTypes::DWord);
        _getMenuString.arg(ExtTypes::DWord);
        _getMenuString.arg(ExtTypes::Pointer);
        _getMenuString.arg(ExtTypes::DWord);
        _getMenuString.arg(ExtTypes::DWord);

        if (_getMenuString.call(popupHandle, id, b, 80, #MF_BYPOSITION))
            return b.string(0);
        return '';
    }
    int DeleteMenu(HWND popupHandle, int id)
    {
        DLLFunction _DeleteMenu    = new DLLFunction(_DLL, "DeleteMenu");

        _DeleteMenu.returns(ExtTypes::DWord);
        _DeleteMenu.arg(ExtTypes::DWord);
        _DeleteMenu.arg(ExtTypes::DWord);
        _DeleteMenu.arg(ExtTypes::DWord);

        return _DeleteMenu.call(popupHandle, id, #MF_BYPOSITION);
    }
    ;
    wnd = infolog.hWnd();
    if (wnd)
    {
        GetMenu.returns(ExtTypes::DWord);
        GetMenu.arg(ExtTypes::DWord);
        hMenu = GetMenu.call(wnd);
        if (hMenu) hmenu = winapi::getSubMenu(hMenu, 0);
        if (hMenu)
        {
            cnt = winapi::getMenuItemCount(hMenu);
            for (i=0;i<cnt;i++)
            {
                name = getMenuItemString(hMenu, i);
                if (name == "&Открыть")
                {
                    hmenu = winapi::getSubMenu(hMenu, i);
                    if (hMenu)
                    {
                        cnt = winapi::getMenuItemCount(hMenu);
                        for (i=0;i<cnt;i++)
                        {
                            name = getMenuItemString(hMenu, i);
                            if (name == "Мен&ю")
                            {
                                DeleteMenu(hMenu, i);
                                return;
                            }
                        }
                    }
                }
            }
        }
    }
}
Саму тему с эти проектом искать нет времени.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
права доступа Himan DAX: Функционал 9 24.09.2010 16:52
Права доступа Группы пользователей к таблице ta_and DAX: Администрирование 2 19.01.2009 15:19
Отсутсвуют права доступа к UserGroupList Corel DAX: Администрирование 4 18.11.2008 12:47
Права доступа на поля формы. AlexeyBP DAX: Функционал 6 12.12.2006 12:02
Права доступа - Журнал платежей SDA DAX: Прочие вопросы 1 20.09.2004 23:10

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:22.