Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

MDI-окно - сделать недоступной кнопку закрытия, убрать из заголовка иконку, удаление

10K
09 мая 2007 года
Etar
24 / / 12.07.2006
Здравствуйте.
Есть такая ситуация - окно 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....

Подскажите пожалуйста по сим пунктам.
Спасибо.
294
09 мая 2007 года
Plisteron
982 / / 29.08.2003
Цитата: Etar
Здравствуйте.
Есть такая ситуация - окно MDI - Form1 и окно MDI-child - Form2.
Необходимо:
* у Form2 сделать кнопку закрытия не доступной, т.е. чтобы окно можно было только
сворачивать или разворачивать (нужно вообще-то только чтоб сворачивать, но
кпопку разворачивания сделать недосупной можно прямо в свойствах, что не
скажешь о кнопке закрытия)
* у Form2 в заголовке убрать иконку, т.е. чтобы окно выглядело как диалоговое,
в свойствах стиль рамки изменяю на Dialog - но не помогает

Эээ... GetWindowLong() + SetWindowLong()?

Цитата: Etar

* желательно, чтобы можно было удалять Form2, как любой динамически
созданный
VCL-объект оператором delete...

А чем Form2->Close() не устраивает?

4.0K
10 мая 2007 года
ApokALEXIS
112 / / 23.08.2006
В тему -

Как отследить попытку закрытия?
Например чтобы выдавать "Сохранить изменения?"
.
.
спс нашел ответ http://forum.codenet.ru/showpost.php?p=189176&postcount=5
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог