Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание нескольких окон приложения 
:(
    Опции темы
Solitaire
Дата 4.8.2009, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 10.7.2008

Репутация: нет
Всего: нет



Здравствуйте.
Сорри за неудачное название темы. Не смог придумать ничего более подходящего.
Есть небольшое приложение - что-то вроде файлового менеджера картинок, расположенных на хостинге. Приложение выполнено в стиле окна эксплорера. Возникла задача открывать несколько окон в рамках одного процесса примерно также, как это делает эксплорер или IE при открытии ссылки в новом окне.
Как можно добиться такого поведения средствами WinAPI? Нужно создавать MDI-приложение или можно создавать новое окно в отдельном потоке?
PM MAIL   Вверх
jonie
Дата 4.8.2009, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 7
Всего: 118



Цитата

Нужно создавать MDI-приложение или можно создавать новое окно в отдельном потоке? 
можно и SDI и без потоков - главное чтобы окно было не модальным.


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Solitaire
Дата 4.8.2009, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 10.7.2008

Репутация: нет
Всего: нет



Тоже верно. Можно просто создавать окна в основном потоке. Все-равно в один момент времени активно только одно окно и все сообщения поступают только ему. Остановлюсь пока на этом варианте. Всё же интересно, как это реализовано в "больших" приложениях. Хотелось бы сделать правильно и эффективно.
PM MAIL   Вверх
kolobok0
Дата 6.8.2009, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 24.12.2008

Репутация: нет
Всего: 2



Цитата(Solitaire @ 4.8.2009,  09:52)
... Хотелось бы сделать правильно и эффективно.

а всё зависит от вашего представления модели. если у вас один источник - то SDI. если много - MDI. то же самое с вьюшками. много представлений одного документа - много вью. нет одно. IE держит несколько сессий TCP параллельно. значит он имеет несколько потоков для обработки - точно. Причём время жизни гораздо больше чем может показаться на первый взгляд smile


удачи вам
(круглый)
PM MAIL   Вверх
jonie
Дата 7.8.2009, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 7
Всего: 118



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


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Mad
Дата 7.8.2009, 17:45 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Эксперт
Сообщений: 656
Регистрация: 18.10.2004
Где: Одесса

Репутация: 2
Всего: 19



Цитата(jonie @  7.8.2009,  09:55 Найти цитируемый пост)
MDI зло

знаете, человек который попробует забивать гвозди микроскопом, не зная его истинного предназначения, тоже может сказать - "микроскоп это зло, все надо делать молотком" smile


Solitaire, в основном все приложения имеют один поток, который обрабатывает GUI компоненты, но если обработка какогото сообщения может занять "длительное" время. тогда код обработки выносят в отдельный поток по принципу "асинхроного вызова". (сообщения распределяються не по потокам, а по схеме ProccessID->WindowHandle)


--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0665 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.