Что нового

[Элементы GUI] Вытаскивание интерфейса поверх эмулятора Fullscreen.

Exhale

Darkness for eternity
Сообщения
11
Репутация
0
Всем доброго времени суток.

Обычно сам решаю все сложности, но тут я честно несколько озадачен - не знаю как решить.

Суть проблемы состоит в том, что в данный момент пишу для себя программку, которая висит плашкой на экране и выводит кое какую информацию из игры. Проблема в том, что нужно чтобы она висела поверх эмулятора DosBox.
Если я использую окну стиль $EX_WS_TOPMOST или функцию WinSetOnTop - все работает правильно и хорошо, до тех пор пока DosBox в оконном режиме - стоит нажать Alt+Enter - то есть перевести его в полноэкранный режим - интерфейс приложения естественно пропадает.

Возможно у кого-нибудь есть мысли как решить эту проблему, чтобы в полноэкранном режиме DosBox - моя программа висела поверх? :scratch:


Добавлено:
Сообщение автоматически объединено:

Что, совсем ни у кого никаких идей нет? :(
 

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
1. Узнать Handle окна DosBox
2. Создать ваше окно и в последний параметр GUICreate установить Handle окна DosBox
3. Сделать ваше окно поверх всех окон

Таким образом ваше окно станет дочерним и будет всегда поверх окна DosBox
 
Автор
E

Exhale

Darkness for eternity
Сообщения
11
Репутация
0
Спасибо за идею, сейчас проверю.


Добавлено:
Сообщение автоматически объединено:

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

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

Еще идеи?
 

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Можно не давать окну DosBox переходить в режим FullScreen, то есть отследить состояние окна если оно FullScreen то восстановить его в прежнее состояние, либо растянуть на весь экран.
 
Автор
E

Exhale

Darkness for eternity
Сообщения
11
Репутация
0
Сам то эмулятор без команды в FS не переходит. Растянуть на весь экран... как-то наверное можно (стандартный ресайз там отключен) - но задача как раз и состояла в том чтобы придумать для фулскрин, а не обойти проблему... Ладно, спасибо и на этом - буду ждать может кто-нибудь предложит еще какие-нибудь варианты. Или сам может че придумаю.

Если уж совсем крайний случай - буду искать и рыться в описаниях и исходниках досбокса (если таковые найду).


Добавлено:
Сообщение автоматически объединено:

В общем покопался и понял что про DosBOX - чушь полнейшую написал. Обычный полноэкранный режим ничем не отличающийся от других приложений.

В общем решил - проверить на других приложениях - работает или нет. В общем на любыъ программах разворачивающихся в полноэкранный режим (по крайней мере на тех, которые меняют разрешение) - не работает в полноэкранном режиме.

Меняю вопрос темы.

Как сделать, чтобы exeщник висел поверх приложения в полноэкранном режиме?
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
попробуй менять статус окна поверх всех окон в цикле, или хотя бы после вхождения программы в полноэкранный режим.
 
Автор
E

Exhale

Darkness for eternity
Сообщения
11
Репутация
0
Пробовал, еще до того как написать сюда. Вставлял на исполнение с интервалом в 0.1 секунды. Разницы вообще никакой. :-X
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Exhale [?]
висит плашкой на экране и выводит кое какую информацию из игры
А вам нужно именно окно повесить? Или цель, всё таки, информацию выводить?
Если информацию, то попробуйте взять пример из справки по функции _WinAPI_DrawText и вместо
Код:
$hDC = _WinAPI_GetDC(0)
написать
Код:
$hDC = _WinAPI_GetDC(WinGetHandle("DOSBox"))
 
Автор
E

Exhale

Darkness for eternity
Сообщения
11
Репутация
0
О! А вот это идея!

Нет, конечно в идеале было бы хорошо окошко повесить, но если уж не получается, то хорошая мысль. Я честно не задумывался в этом направлении - пошел пробовать. Спасибо за идею.
 
Верх