Показать сообщение отдельно
Старый 14.02.2006, 06:23   #1  
Romb is offline
Romb
Участник
Аватар для Romb
 
79 / 22 (1) +++
Регистрация: 06.01.2004
Как убрать кнопку закрытия окна у диалога?
Использую класс Dialog, чтобы выводить модальные диалоги (по поводу оправданности модальности диалогов в Axapta все знаю, в большинстве случаев она конечно не нужна, но, нам действительно нужен модальный диалог, очень прошу это не обсуждать).

Происходит следующее

Код:
// создать диалог создания операции на основе формы
fm      = new Form("OperationCreateDialog");
dialog  = new dialog("", element, "", fm);
dialog.doInit();

// сделать модальным
setFormModal(dialog.dialogForm().formRun().hWnd(), true);

dialog.run();

// выключить модальность
setFormModal(dialog.dialogForm().formRun().hWnd(), false);
Беда в том, что на строчку кода после dialog.run() мы попадем только при нажатии кнопки "Ок" или "Cancel". Если же пользователь нажмет кнопку закрытия окна (крестик в правом верхнем углу) на диалоге, то модальность выключена не будет и Axapta останется недоступной, приходится убивать ее.

Выхода два:

Либо научиться обрабатывать нажатие этой кнопки (а там проблема в том, что если форма в диалоге создается динамически, то динамически нужно этот метод и обрабатывать, либо если форма диалогу подсунута, то все равно динамически создавать и обрабатывать у нее метод close())

Либо не показывать ее, предоставляя пользователю только возможность нажатия на обычные кнопки. (тут проблема в том, что надо использовать WinApi - по другому решение не видится).

Пожалуйста, подскажите что-нибудь.
Спасибо.