Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

Народное голосование ПРЕМИИ РУНЕТА-2007!
Голосуем за RusFAQ.ru >>

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 898
от 06.11.2007, 06:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 478, Экспертов: 66
В номере:Вопросов: 1, Ответов: 3


Вопрос № 107590: Доброго времени суток. Я новичек. Столкнулся с такой проблемой, если не сложно, то подскажите как исправить ситуацию. Создаю диалоговое MFC приложение в Visual Studio C++ .NET. Суть программы заключается в том, что есть Основное модальное диалоговое ...

Вопрос № 107.590
Доброго времени суток. Я новичек. Столкнулся с такой проблемой, если не сложно, то подскажите как исправить ситуацию. Создаю диалоговое MFC приложение в Visual Studio C++ .NET. Суть программы заключается в том, что есть Основное модальное диалоговое окно, в котором находятся 2 кнопки, 1-я кнопка осуществляет переход к модальному окну 1, а 2-я к модальному окну 2. Как сделать, чтобы во время перехода, т.е. после открытия 1-го модального окна, основное модальное окно стало скрытым, т.е. чтобы его не было видно на экране, и потом при нажатии на кнопку назад в том же 1-м модальном окне, основное модальное окно появилось. И по аналогии тоже самое со 2-й кнопкой и 2-м модальным окном. Заранее спасибо.

Приложение:

Отправлен: 01.11.2007, 01:01
Вопрос задал: Isaev Den (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Netizen
Здравствуйте, Isaev Den!
С модальными окнами не пробовал, но у формы есть свойство Visible может принимать значение true или false. То есть при нажатии на кн. 1 Form1->Visible = true;
Ответ отправил: Netizen (статус: Студент)
Ответ отправлен: 01.11.2007, 08:00
Оценка за ответ: 5
Комментарий оценки:
Спасибо за совет. С формами все понятно. Буду пробовать.

Отвечает: Воробьёв Алексей Викторович
Здравствуйте, Isaev Den!

Так как у Вас сделано точно нельзя писать. Каждый раз, когда вы вызываете OnBtnClicked вы создаёте новое диалоговое окно, а не переключаетесь между двумя. В результате после 100 кликов у Вас будет 100 окон (101 точнее). Я не думаю, что именно это Вам надо.

Создавайте формы так, чтобы при нажатии на кнопку они возвращались в вызывающую программу.

Можете это сделать только для формы 2. Тогда код нажатия на клавишу переключения в форме 1 будет выглядеть как-то так:
Visible = false;
dlg2.DoModal();
Visible = true;
А в форме 2 будет просто возвращать значение из диалога (я не специалист в GUI потому не знаю как это сделать)

Или можно завести 2 формы в каком-то внешнем классе и сделать цикл типа
while(dlg1.DoModal() == SWITCH && dlg2.DoModal() == SWITCH)
{
}
где SWITCH - возвращаемое из диалога значение, что нажата кнопка переключения.
Ответ отправил: Воробьёв Алексей Викторович (статус: 5-ый класс)
Ответ отправлен: 01.11.2007, 10:27
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо. Обязательно учту этот нюанс. Буду пробовать, надеюсь все получится.

Отвечает: CruelHity
Здравствуйте, Isaev Den!
Воробьёв Алексей Викторович был прав лучше объявлят диологовое окно не при нажатии кнопки а в нутри класса!
А вот пример нажатии кнопки в приложении,Удачи!

Приложение:

Ответ отправил: CruelHity (статус: 3-ий класс)
Ответ отправлен: 01.11.2007, 13:24
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо за ответ. Буду пробовать, только попробую ShowWindow(SW_HIDE). Надеюсь все получится.


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.61.1 от 16.10.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное