Показать сообщение отдельно
Старый 14.02.2006, 11:29   #5  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Добавьте в класс WinApi следующий метод
X++:
static int setWindowLong(HWND _HWND, int _nIndex, int _dwNewLong)
{
    DLL         DLL;
    DLLFunction DLLFunction;
    ;

    DLL = new DLL(#UserDLL);
    DLLFunction = new DLLFunction(DLL,'SetWindowLongA');
    DLLFunction.arg(ExtTypes::DWord, ExtTypes::DWord, ExtTypes::DWord);
    DLLFunction.returns(ExtTypes::DWord);

    return DLLFunction.call(_HWND, _nIndex, _dwNewLong);
}
Определите перед использованием эти макросы
X++:
#define.GWL_STYLE (0xFFFFFFF0)
#define.WS_SYSMENU(0x00080000)
Этот код убирает кнопку закрытия диалогового окна (FormRun уже должен существовать)
X++:
style = winapi::getWindowLong(dialog.dialogForm().formRun().hWnd(), 
    #GWL_STYLE);
style = style & ~(#WS_SYSMENU);
winapi::setWindowLong(dialog.dialogForm().formRun().hWnd(), 
    #GWL_STYLE, style);
Правда окно обрабатывает нажатие CTRL+F4 (setFormModal убирает это или нет?)
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: Romb (3), SANTAN (1).