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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.07.2009, 11:45   #10  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,495 / 1070 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
тогда проще сделать вызываемую форму модальной.

в run() формы добавьте

X++:
void run()
{
    WinApi::setFormModal(this.hWnd(), true);
}
в класс WinApi добавьте
X++:
static HWND setFormModal(hWND _thisHWND, boolean _bModal, HWND _parentHWND = 0)
{
    DLL             _winApiDLL;
    DLLFunction     _EnabledWindow;
    DLLFunction     _getTop;
    DLLFunction     _getNext;
    DLLFunction     _getParent;

    void local_enableWHND(HWND _lHWND, HWND _pHWND = 0)
    {
        int lnextWnd;

        if (!_pHWND)
            _pHWND = _getParent.call(_lHWND);

        lnextWnd = _getTop.call(_getParent.call(_lHWND));

        while (lnextWnd)
        {
           if (lnextWnd != _lHWND && WinApi::getWindowText(lnextWnd) != "@SYS25246")
                _enabledWindow.call(lnextWnd, (!_bModal));

            lnextWnd =  _getNext.call(lnextWnd, 2);
        }
    }
    ;
    _winApiDLL              = new DLL('user32');
    _getNext                = new DLLFunction(_winApiDLL, "GetWindow");
    _EnabledWindow          = new DLLFunction(_winApiDLL, "EnableWindow");
    _getTop                 = new DLLFunction(_winApiDLL, "GetTopWindow");
    _getParent              = new DLLFunction(_winApiDLL, "GetParent");

    _getParent.returns(ExtTypes::DWORD);
    _getParent.arg(ExtTypes::DWORD);

    _EnabledWindow.returns(ExtTypes::DWORD);
    _EnabledWindow.arg(ExtTypes::DWORD, ExtTypes::DWORD);

    _getTop.returns(ExtTypes::DWORD);
    _getTop.arg(ExtTypes::DWORD);

    _getNext.returns(ExtTypes::DWORD);
    _getNext.arg(ExtTypes::DWORD, ExtTypes::DWORD);

    local_enableWHND(_thisHWND);

    if (!_parentHWND)
        _parentHWND = _getParent.call(_thisHWND);

    local_enableWHND(_getParent.call(_thisHWND));

    return _parentHWND;
}
Теги
закрытие, программно, форма, запрет

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Самостоятельные формы и формы открывающиеся из другой формы. Dima_Dima DAX: Программирование 6 19.12.2008 18:27
Зачем 2 формы транспортировки паллет и 2 формы маршрутов комплектации? twilight DAX: Функционал 2 15.02.2008 11:24
Создание Lookup формы Maxim Gorbunov DAX: База знаний и проекты 9 26.06.2007 16:44
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38
Динамические Lookup формы. Андрей Василюк DAX: База знаний и проекты 0 07.12.2001 07:07

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

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

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