Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2010, 22:24   #1
SerzhVl
 
Регистрация: 30.05.2010
Сообщений: 9
По умолчанию Закрытие приложения в Visual C++ 2008

Добрый день.
Столкнулся с проблемой завершения программы.
Например, перед ее закрытием нужно выполнить ряд условий.
Если я ее закрываю через меню файл -> закрыть, то в обработчике
события "закрыть", я пишу :

if (uslovie)
{
this -> Close(); // Закрываю форму, если "uslovie == true" .
}

Можно ли создать такую же обработку закрытия программы,
при нажатии на крестик в правом верхнем углу ? И где находится сам
обработчик такого события (закрытия) ?

Заранее благодарен.
SerzhVl вне форума Ответить с цитированием
Старый 04.07.2010, 22:42   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Видимо надо угадывать что за библиотеку (если вообще) вы используете. Но все же, ловить OnClose сообщение (ивент в используемой библ.) там обычно есть параметр входящий/исходящий в котором как раз это можно установить.

p.s. опять не ясно, причем тут .NET
BOBAH13 вне форума Ответить с цитированием
Старый 05.07.2010, 04:06   #3
HIMen
 
Регистрация: 18.09.2009
Сообщений: 3
По умолчанию

Цитата:
Сообщение от BOBAH13 Посмотреть сообщение
p.s. опять не ясно, причем тут .NET
мм.. C++/CLI похоже
Цитата:
Сообщение от SerzhVl Посмотреть сообщение
Можно ли создать такую же обработку закрытия программы,
при нажатии на крестик в правом верхнем углу ? И где находится сам
обработчик такого события (закрытия) ?
Вариантов много: например события FormClosing и FormClosed, или перекрытие функции OnClosing. Они все сработают при вызове this->Close()

Последний раз редактировалось HIMen; 05.07.2010 в 04:16.
HIMen вне форума Ответить с цитированием
Старый 05.07.2010, 21:34   #4
SerzhVl
 
Регистрация: 30.05.2010
Сообщений: 9
По умолчанию

Спасибо. Буду отталкиваться от FormClosing и FormClosed
(пока не понятно как до них добраться, но разберусь).
Вообще, это задумано для того, что если ряд определенных условий
не выполнен, то программа не закрывается, а просит их выполнить
перед закрытием, например как сохранить файл перед выходом и пр.
(слово файл здесь - только как пример).
SerzhVl вне форума Ответить с цитированием
Старый 06.07.2010, 13:35   #5
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Есть проще вариант. Подписываешься на FormClosing, в обработчике:
Код:
if (uslovie)
{
e.Cancel = true; // e - это аргумент, который придем в обработчик
return;
}
Hollander вне форума Ответить с цитированием
Старый 06.07.2010, 19:15   #6
SerzhVl
 
Регистрация: 30.05.2010
Сообщений: 9
По умолчанию

Событие FormClosing :

if (uslovie)
{
e -> Cancel = true; // Отменяем закрытие, если "uslovie == true"
}

Вот точно, спасибо. Этот вариант у меня сегодня и заработал.
Разобрался. Событие FormClosing срабатывает до закрытия формы, и
ее закрытие можно отменить, FormClosed - после закрытия.
В общем, все классно и все работает !!! Спасибо.
SerzhVl вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MS SQL Server 2008 и Visual Studio 2008 C# (Как работать с БД?) cherw9!40k Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 2 14.01.2010 20:51
Visual Studio Standard 2008 против Visual Studio Express 2008. Стоит ли покупать? Casper-SC Софт 4 31.12.2009 11:46
VISUAL STUDIO 2008 defaul language - как переключить в VISUAL STUDIO 2008 язык программирования, использ Эйнж Общие вопросы C/C++ 0 27.12.2009 20:39
Сборка standalone приложения в Visual Studio 2008 Sparxy Visual C++ 2 06.11.2009 15:06
Закрытие приложения Лёка Общие вопросы Delphi 7 09.03.2008 15:50