Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1] 2  Все   Вниз
  Печать  
Автор Тема: как закрыть окно..  (Прочитано 30519 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Jul
Гость
« : 21-05-2008 12:47 » 

привет...я-новичок..делаю одну программку..
там будильничек,по окончании времени которого появляется диалоговое окно с картинкой..на нем нажимаю кнопку Next и появляется вторая картинка..уже на втором диалоговом окне нажимаю кнопку Exit и по идее должно всё закрыться..но закрывается тока второе окно,а первое остается...как его закрыть??
Записан
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #1 : 21-05-2008 12:51 » 

Jul, например условие, если произошел Event закрытия окна номер два, то выполнить Event закрытия для окна номер раз! Улыбаюсь
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Jul
Гость
« Ответ #2 : 21-05-2008 13:00 » 

я вот так закрываю второе окно :
void Cdlg3::OnExit()
{
   OnOK();
}

??
Записан
Jul
Гость
« Ответ #3 : 21-05-2008 13:04 » 

просто получается что этим OnOK() я закрываю тока второе окно...(
Записан
Sands
Помогающий

ua
Offline Offline

« Ответ #4 : 21-05-2008 13:14 » 

Jul, А ты второй диалог запускаеш из первого через dlg.DoModal()?
Если да, то проверь результат выхода из DoModal() на IDOK и если они соврадают то вызови OnOK() в первом диалоге.
Записан
Jul
Гость
« Ответ #5 : 21-05-2008 13:16 » 

я так и сделала сейчас...в дебаге ошибка выскакивает,а в релизе-все норм Улыбаюсь
как понимать?... Не понял
Записан
Sands
Помогающий

ua
Offline Offline

« Ответ #6 : 21-05-2008 13:17 » 

Jul, Так и понимать )) Ты бы хоть ошибку привела, ато играть в угадайки против компилятора - гиблое дело ))
Записан
Jul
Гость
« Ответ #7 : 21-05-2008 13:20 » 

ошибку?
Debug Assertion Failed!
прервать   повтор   запустить

исчерпывающая информация!
Записан
Вад
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #8 : 21-05-2008 13:23 » 

А в релизе, значит, так, молча упало Улыбаюсь (раз уж это закрытие приложения было)
Записан
Jul
Гость
« Ответ #9 : 21-05-2008 13:24 » 

в релизе все ок..в прямом смысле этого слова(появляется маленькое окно с OK)
Записан
Sands
Помогающий

ua
Offline Offline

« Ответ #10 : 21-05-2008 13:28 » 

Jul, Ето немного вольная интерпретация сказанного компилятором )) По идее он там должен был сказать в каком файле и на каком условии ето произошло.
Кажется, если нажать на "Повтор", то он тебя перекинет на место ошибки.
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #11 : 21-05-2008 13:36 » 

Если окно 2 дочернее, то можно сразу вызывать "закрыть" для родительского, дочернее будет закрыто автоматически.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Jul
Гость
« Ответ #12 : 21-05-2008 13:43 » 

вот именно,с помощью чего произвести это "закрыть"?
Записан
Sands
Помогающий

ua
Offline Offline

« Ответ #13 : 21-05-2008 13:47 » 

Jul, Ну тут можно либо сообщение послать родительскому окну либо при инициализации дочернего передать ему указательна родительское и в коде дочернего вызвать метод родительского, который его закроет
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #14 : 21-05-2008 14:38 » 

Jul, какой вопрос такой и ответ. Ты не указал ни среду, ни язык, только абстрактные окна-диалоги. Хочешь конкретики, должен сам начинать с неё. А так я тебе ща выдам на С#, а тебе на Delphi надо... Ну?
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Jul
Гость
« Ответ #15 : 21-05-2008 19:20 » 

это великий и могучий С++.... Да-да
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #16 : 21-05-2008 19:23 » 

Jul, в с++ нет окон Улыбаюсь Может это Visual C++ ?  Borland  ?
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #17 : 21-05-2008 22:03 » 

Лёш, надо задавать такие вопросы, засовывая иголки под ногти и прижигая калёным железом пятки.Так ещё сразу и версию узнаешь и может быть кучу других подробностей, например под какой осью это всё делается, тоже немаловажно. Но это не гарантия. Партизаны - народ стойкий.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
marat_
Шеф-повар
Опытный

ru
Offline Offline

« Ответ #18 : 21-05-2008 22:14 » 

Джон, зачэм над дэвушкой смэёшься, э?
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #19 : 22-05-2008 00:50 » 

Да? Блин, а я и не заметил, что это девушка! Сорри.

Так, Лёшка, радикально меняем метод, теперь делаешь всё тоже самое, но только мягче, мягче.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #20 : 22-05-2008 03:35 » 

сорри, был невнимателен. Это VC (версию не знаю) , MFC Улыбаюсь
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #21 : 22-05-2008 03:39 » 

Jul, например, ты хочешь из второго окна закрыть первое. При открытии второго кона - передай туда указатель (CWnd*) или хендл (HWND) первого окна. А в момент закрытия второго окна отправь первому сообщение WM_CLOSE
Код:
void Cdlg3::OnExit() 
{
   pDialogN1->PostMessage(WM_CLOSE,0,0);
   OnOK();
}
Записан

Jul
Гость
« Ответ #22 : 22-05-2008 09:24 » 

очень приятно,что все догадались о поле пишущего вам человека)))забавно Улыбаюсь
спасибо всем)может кстати еще вопросы появятся))
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #23 : 22-05-2008 09:34 » 

а думаешь, просто догадаться ? Улыбаюсь Вот ежели бы ты фотографию прицепила Улыбаюсь
Записан

Jul
Гость
« Ответ #24 : 22-05-2008 10:53 » 

думаю можно было догадаться..я пару глаголов написала от женского лица...)все зависит от внимательности чтения
а насчет фотки извините..не много народу,у кого эти фотки есть.да и программист-это не лицо,это знания)
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #25 : 22-05-2008 11:01 » 

да про фотки - это шутка )
Неважно - девушка, не девушка, если программист - значит программист

а глаголы не заметил, у меня WAP режим - всё в узком окошке ) Мало постов видно
Записан

Jul
Гость
« Ответ #26 : 22-05-2008 11:25 » 

уточню-начинающий программист..и не понимаю зачем мне это нужно.. А черт его знает...
трудно дается
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #27 : 22-05-2008 11:25 » 

пригодится Улыбаюсь 99%
Записан

Jul
Гость
« Ответ #28 : 22-05-2008 11:39 » 

тогда следующий вопрос
как сделать в этой же проге,чтобы при появлении первой картинки вторая появлялась через какой-то промежуток времени,возможно задаваемый таймером?(то есть без помощи кнопки next).дело в том,что в основном диалоге уже есть таймер,по окончании времени которого и появляется первая картинка..я так понимаю нужно ставить еще таймер только в диалоге первой картинки..вот только где его инициализировать?ведь в функции OnTimer(UINT nIDEvent) происходит событие,задаваемое таймером,значит не в этой функции надо инициализировать...тогда где?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #29 : 22-05-2008 11:47 » 

параметр nIDEvent - это идентификатор таймера для окна.

Если задать разные идентификаторы (например 1 и 2) то функция SetTimer запустит два разных таймера.
Записан

Страниц: [1] 2  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines