Добавьте в класс 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 убирает это или нет?)