совмещение gui из разных процессов
От: Bаня  
Дата: 27.08.18 20:30
Оценка:
подскажите пожалуйста как с помощью sciter реализовать интерфейс программы работающий по типу современного браузера,
а точнее одно окно с шапкой с табами которые переключают интерфейсы из других процессов(моих, тоже sciter)

пока на ум пришёл только самый дубовый вариант с child окнами других процессов в основном окне, но браузеры работают по другому,
можно как-то sciter'ом в дочернем процессе рендерить в d2d shared surface чтобы рисовать её в основном gui процессе, и если да, то как передавать из основного gui процесса все события(мышь/клавиатура) на дочерний процесс?

ещё была идея оторвать шапку в отдельное окно, и прилепить снизу окна других процессов, но только не уверен, что эту конструкцию можно будет безболезненно таскать и ресайзить.
Re: совмещение gui из разных процессов
От: c-smile Канада http://terrainformatica.com
Дата: 28.08.18 15:40
Оценка:
Здравствуйте, Bаня, Вы писали:

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

B>а точнее одно окно с шапкой с табами которые переключают интерфейсы из других процессов(моих, тоже sciter)

B>пока на ум пришёл только самый дубовый вариант с child окнами других процессов в основном окне, но браузеры работают по другому,


А собственно чем этот вариант плох в твоем случае?

B>можно как-то sciter'ом в дочернем процессе рендерить в d2d shared surface чтобы рисовать её в основном gui процессе, и если да, то как передавать из основного gui процесса все события(мышь/клавиатура) на дочерний процесс?


В принципе для этого подошел бы windowless sciter : https://sciter.com/scilite-windowless-sciter-engine/ , но я остановил работы по нему — нет особого интереса ни у кого.

B>ещё была идея оторвать шапку в отдельное окно, и прилепить снизу окна других процессов, но только не уверен, что эту конструкцию можно будет безболезненно таскать и ресайзить.


Можно и так тоже. Visual Studio например так рисует тени вокруг IDE окна — там четыре VisualStudioGlowWindow — отдельных desktop window по краям.
Просто эту всю конструкцию нужно двигать с пом. Begin/EndDeferWindowPos + DeferWindowPos — т.е. как одно целое.
Re[2]: совмещение gui из разных процессов
От: Bаня  
Дата: 28.08.18 22:28
Оценка:
Здравствуйте, c-smile, Вы писали:

спасибо за ответы.

B>>пока на ум пришёл только самый дубовый вариант с child окнами других процессов в основном окне, но браузеры работают по другому,

CS>А собственно чем этот вариант плох в твоем случае?

где-то читал на форуме ваше же предположение, что при child окнах винда отключает у sciter'а отрисовку через gpu
Re[3]: совмещение gui из разных процессов
От: c-smile Канада http://terrainformatica.com
Дата: 29.08.18 15:21
Оценка:
Здравствуйте, Bаня, Вы писали:

B>Здравствуйте, c-smile, Вы писали:


B>спасибо за ответы.


B>>>пока на ум пришёл только самый дубовый вариант с child окнами других процессов в основном окне, но браузеры работают по другому,

CS>>А собственно чем этот вариант плох в твоем случае?

B>где-то читал на форуме ваше же предположение, что при child окнах винда отключает у sciter'а отрисовку через gpu


Разные версии Windows ведут себя по разному в этом случае.

Второй вопрос: А зачем вообще такая конструкция, несколько Sciter'ов на одном окне? Почему не один и несколько <frame>ов ?
Re[4]: совмещение gui из разных процессов
От: Bаня  
Дата: 30.08.18 00:53
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Второй вопрос: А зачем вообще такая конструкция, несколько Sciter'ов на одном окне? Почему не один и несколько <frame>ов ?


во <frame>ах должны работать подключаемые интерфейсы из других процессов, и эти интерфейсы должны быть полностью "на ты" с html/css/tis посредством native code,
поэтому крутить sciter с фреймами в одном процессе и пересылать евенты в другие процессы очень сложно и не гибко.
Re[5]: совмещение gui из разных процессов
От: c-smile Канада http://terrainformatica.com
Дата: 30.08.18 01:29
Оценка:
Здравствуйте, Bаня, Вы писали:

B>Здравствуйте, c-smile, Вы писали:


CS>>Второй вопрос: А зачем вообще такая конструкция, несколько Sciter'ов на одном окне? Почему не один и несколько <frame>ов ?


B>во <frame>ах должны работать подключаемые интерфейсы из других процессов, и эти интерфейсы должны быть полностью "на ты" с html/css/tis посредством native code,

B>поэтому крутить sciter с фреймами в одном процессе и пересылать евенты в другие процессы очень сложно и не гибко.

Тогда вариант с child window я думаю будет самым гуманным.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.