Информация об изменениях

Сообщение Re: Кликнуть в скрытое окно от 24.07.2019 11:01

Изменено 24.07.2019 11:02 Carc

Re: Кликнуть в скрытое окно
Здравствуйте, Cannol, Вы писали:

C>Прошу подсказать, как правильно кликать в скрытое окно!

C>Есть подобие виртуальной кабины автомобиля и там я моделирую планшет (как электронный гаджет) возле приборной панели. Надо, чтобы веб-браузер был отрисован на экране этого виртуального планшета.
C>Для этого:

C>1. Пришлось для браузера создать отдельное 2Д окно, и делаю я его неотображаемым (SW_HIDE, или вот щас WS_EX_TRANSPARENT), в том же потоке:

C>
hWndMain = CreateWindowEx(WS_EX_TRANSPARENT, szWndClassMain, szWndTitleMain, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, wWndWidth, wWndHeight, NULL, NULL, hInst, NULL);

Можно как вариант сделать иначе. Окно с этим IWebBrowser2 оставить видимым, но не показывать его в пределах рабочего стола, и в панели задач.

Например, именно так делается, чтобы в списке окон приложений по Alt+Tab все таки иконка приложения была, а вот само главное окно скрыто (когда, например свернуто в трей).

По сути создается фейковое видимое окно, задвигается за пределы рабочего стола (что-нить в стиле SetWindow(…, -3000,-3000, 20,20), и скрывается из панели задач внизу рабочего стола. Тогда окно видимое, все работает, но пользователь его не увидит.

PS: в моем случае это именно для трея и делалось. Это фейковое окно, получало по Alt+Tab WM_ACTIVATE и просто дергало главне окно приложения, мол давай подымайся из трея (иконка в трее иконкой, но де факто само главное окно именно что скрыто).
Re: Кликнуть в скрытое окно
Здравствуйте, Cannol, Вы писали:

C>Прошу подсказать, как правильно кликать в скрытое окно!

C>Есть подобие виртуальной кабины автомобиля и там я моделирую планшет (как электронный гаджет) возле приборной панели. Надо, чтобы веб-браузер был отрисован на экране этого виртуального планшета.
C>Для этого:

C>1. Пришлось для браузера создать отдельное 2Д окно, и делаю я его неотображаемым (SW_HIDE, или вот щас WS_EX_TRANSPARENT), в том же потоке:

C>
hWndMain = CreateWindowEx(WS_EX_TRANSPARENT, szWndClassMain, szWndTitleMain, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, wWndWidth, wWndHeight, NULL, NULL, hInst, NULL);

Можно как вариант сделать иначе. Окно с этим IWebBrowser2 оставить видимым, но не показывать его в пределах рабочего стола, и в панели задач.

Например, именно так делается, чтобы в списке окон приложений по Alt+Tab, чтобы все таки иконка приложения была, а вот само главное окно скрыто (когда, например свернуто в трей).

По сути создается фейковое видимое окно, задвигается за пределы рабочего стола (что-нить в стиле SetWindow(…, -3000,-3000, 20,20), и скрывается из панели задач внизу рабочего стола. Тогда окно видимое, все работает, но пользователь его не увидит.

PS: в моем случае это именно для трея и делалось. Это фейковое окно, получало по Alt+Tab WM_ACTIVATE и просто дергало главне окно приложения, мол давай подымайся из трея (иконка в трее иконкой, но де факто само главное окно именно что скрыто).