Рендеринг нескольких процессов в одном окне - PullRequest
1 голос
/ 24 августа 2011

Отображение нескольких процессов в одном окне

Два процесса, два окна, но одно окно действует как дочернее окно другого окна.Например, окно содержит Ctrl редактирования, но Ctrl редактирования принадлежат другому процессу.Как я могу реализовать такое приложение MFC?

Ответы [ 3 ]

0 голосов
/ 24 августа 2011

Окно и его дочерний элемент должны принадлежать одному и тому же процессу. Период.

Что вы можете сделать, это перенаправить вывод процесса (например, stdout) в канал. Процесс графического интерфейса по очереди читает канал и отображает содержимое в специальном дочернем окне (поле редактирования или другое).

Эта статья MSDN о перенаправлении ввода / вывода может помочь.

0 голосов
/ 30 августа 2011

На самом деле вы можете достичь этого, но есть некоторые ограничения.

Например, вы можете встроить MS Word в свое приложение. Окно Word встроено в ваше дочернее окно. но на самом деле есть еще один процесс winword.exe.

Ваше приложение работает как составной контейнер документов, а встроенный - как составной сервер документов.

Пожалуйста, найдите материал, связанный с "составным документом", из MSDN.

0 голосов
/ 24 августа 2011

Я не думаю, что иметь более одного потока для управления пользовательским интерфейсом - это вообще хорошая идея.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...