MDI-окно - сделать недоступной кнопку закрытия, убрать из заголовка иконку, удаление
Есть такая ситуация - окно MDI - Form1 и окно MDI-child - Form2.
Необходимо:
* у Form2 сделать кнопку закрытия не доступной, т.е. чтобы окно можно было только
сворачивать или разворачивать (нужно вообще-то только чтоб сворачивать, но
кпопку разворачивания сделать недосупной можно прямо в свойствах, что не
скажешь о кнопке закрытия)
* у Form2 в заголовке убрать иконку, т.е. чтобы окно выглядело как диалоговое,
в свойствах стиль рамки изменяю на Dialog - но не помогает
* желательно, чтобы можно было удалять Form2, как любой динамически созданный
VCL-объект оператором delete...
вот попробовал сделать так, но не вышло - при удалении вылетает с ошибкой GPF -
обращение к адресу 0....0000...:
void __fastcall TForm1::CreateDestroy(TObject *Sender)
{
static TForm2 * amp;
static HWND wnd;
if (Sender == Button1) //Button1 - создает
{
TForm2 * Form2 = new TForm2(this);
Form2->Parent = this;
amp = Form2;
wnd = Form2->Handle;
}
else // другая кнопка удаляет
//DestroyWindow(wnd);
delete amp;
}
Отладка не помогла - вроде по логике все идет как надо, вылетает, когда удаляет окно
через delete...
DestroyWindow помогает, но все же хотелось больше бы через delete....
Подскажите пожалуйста по сим пунктам.
Спасибо.
Цитата: Etar
Здравствуйте.
Есть такая ситуация - окно MDI - Form1 и окно MDI-child - Form2.
Необходимо:
* у Form2 сделать кнопку закрытия не доступной, т.е. чтобы окно можно было только
сворачивать или разворачивать (нужно вообще-то только чтоб сворачивать, но
кпопку разворачивания сделать недосупной можно прямо в свойствах, что не
скажешь о кнопке закрытия)
* у Form2 в заголовке убрать иконку, т.е. чтобы окно выглядело как диалоговое,
в свойствах стиль рамки изменяю на Dialog - но не помогает
Есть такая ситуация - окно MDI - Form1 и окно MDI-child - Form2.
Необходимо:
* у Form2 сделать кнопку закрытия не доступной, т.е. чтобы окно можно было только
сворачивать или разворачивать (нужно вообще-то только чтоб сворачивать, но
кпопку разворачивания сделать недосупной можно прямо в свойствах, что не
скажешь о кнопке закрытия)
* у Form2 в заголовке убрать иконку, т.е. чтобы окно выглядело как диалоговое,
в свойствах стиль рамки изменяю на Dialog - но не помогает
Эээ... GetWindowLong() + SetWindowLong()?
Цитата: Etar
* желательно, чтобы можно было удалять Form2, как любой динамически
созданный
VCL-объект оператором delete...
А чем Form2->Close() не устраивает?
Как отследить попытку закрытия?
Например чтобы выдавать "Сохранить изменения?"
.
.
спс нашел ответ http://forum.codenet.ru/showpost.php?p=189176&postcount=5