Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Системное программирование и WinAPI > Создание нескольких окон приложения |
Автор: Solitaire 4.8.2009, 08:58 |
Здравствуйте. Сорри за неудачное название темы. Не смог придумать ничего более подходящего. Есть небольшое приложение - что-то вроде файлового менеджера картинок, расположенных на хостинге. Приложение выполнено в стиле окна эксплорера. Возникла задача открывать несколько окон в рамках одного процесса примерно также, как это делает эксплорер или IE при открытии ссылки в новом окне. Как можно добиться такого поведения средствами WinAPI? Нужно создавать MDI-приложение или можно создавать новое окно в отдельном потоке? |
Автор: jonie 4.8.2009, 09:32 | ||
|
Автор: Solitaire 4.8.2009, 09:52 |
Тоже верно. Можно просто создавать окна в основном потоке. Все-равно в один момент времени активно только одно окно и все сообщения поступают только ему. Остановлюсь пока на этом варианте. Всё же интересно, как это реализовано в "больших" приложениях. Хотелось бы сделать правильно и эффективно. |
Автор: kolobok0 6.8.2009, 12:51 | ||
а всё зависит от вашего представления модели. если у вас один источник - то SDI. если много - MDI. то же самое с вьюшками. много представлений одного документа - много вью. нет одно. IE держит несколько сессий TCP параллельно. значит он имеет несколько потоков для обработки - точно. Причём время жизни гораздо больше чем может показаться на первый взгляд ![]() удачи вам (круглый) |
Автор: jonie 7.8.2009, 10:55 |
MDI зло, забудьте как страшный сон - без него вполне можно обходиться. |
Автор: Mad 7.8.2009, 17:45 |
знаете, человек который попробует забивать гвозди микроскопом, не зная его истинного предназначения, тоже может сказать - "микроскоп это зло, все надо делать молотком" ![]() Solitaire, в основном все приложения имеют один поток, который обрабатывает GUI компоненты, но если обработка какогото сообщения может занять "длительное" время. тогда код обработки выносят в отдельный поток по принципу "асинхроного вызова". (сообщения распределяються не по потокам, а по схеме ProccessID->WindowHandle) |