![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Dragon |
|
|||
|
Unregistered |
Мне нужно, что бы моё окно оставалось всегда поверх любого приложения и не перекрывалось ничем.
Попробывал вызывать SetWindowPos() с параметром TOPMOST по таймеру но появилась другая проблема - моя программа при запуске сначала сворачивает всех на панель задач, выводит окно, и всё. Как сделать, чтоб она никого никуда не скручивала при запуске? Или кто знает как по-другому выводить окна поверх игр. |
|||
|
||||
| knave |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 6.3.2003 Где: Санкт-Питербург ( Россия) Репутация: 1 Всего: 5 |
Это просто сокнами несделать. Так как в играх используется приямой вывод в видеопямять, а окно нужно тольок для того что бы указать координаты. Если хочеш что то вывдить то тебе нужно выводить на HDC вырхнего окна. Но в играх это будет моргать. Вообще думаю что бы неморгало стороняя программы нарисовать несможет. Там ж все изоражение строится в буфере, следоватеьно твое должно быть выведено самым последним, что бы быть поверх всего. А как ты узнаеш что кадр у игры уже отрисовался и гтов в выводу.
-------------------- С наилучшими пожеланиями !!! |
|||
|
||||
| knave |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 6.3.2003 Где: Санкт-Питербург ( Россия) Репутация: 1 Всего: 5 |
может конечно я инеправ. Иногда я видел диалоговые окна системные которые вылетали на экран и несворачивали игру.
-------------------- С наилучшими пожеланиями !!! |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
а если какнить перехватить функ flip директдрава?
тогда можно будет смело в бэк буфере дорисовать че угодно а потом флип сделать -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Ага, а если там OpenGL?
|
|||
|
||||
| Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 5 Всего: 44 |
Не увенрена, а если диалоговое окно созадать как системное модальное ?
-------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
Есть такая программа Fraps - она занимается именно этим - перехватывает операции типа swapBuffer (OpenGL), BitBlt и т.п. и выводин в углу игрушки фрейм/сек. Перехват вызовов можно сделать как угодно, на форуме это обсуждалось много раз. -------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| Dragon |
|
|||
|
Unregistered |
Вот явный пример - в Flash Get корзина закачек всегда выводится поверх всех игр (OpenGL, DirectX)
и даже не мигает. А ещё видел плагин к Winamp который держит своё окно поверх всех. Ну и не следует забывать всякие шелы в компьютерных клубах - они методично выводят своё окно с просьбой доплатить |
|||
|
||||
| knave |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 6.3.2003 Где: Санкт-Питербург ( Россия) Репутация: 1 Всего: 5 |
Тогда надо поискать как это делать
-------------------- С наилучшими пожеланиями !!! |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
Кто-то чего говорил про прямое отображение в память? Гы
-------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
Baa
ну немнога не согласен в случае с директдрав если я делаю comcall DDraw,SetCooperativeLevel,\ [hwd],DDSCL_EXCLUSIVE+DDSCL_FULLSCREEN то могу потом рисовать непосредственно в LFB напрямую без заморочек mov [edi],eax к примеру быстро и надежно -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| knave |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 6.3.2003 Где: Санкт-Питербург ( Россия) Репутация: 1 Всего: 5 |
да согласен с предыдущим - игра даже когда идет в окне (D3D или DD), то окно всеголищ используется для определения координат в видиопамяти, а вывож происходт напрямую. Этот Эффект можно наблюдать если игру в окне запустить и поводить это окно по экрану. Сожержимопе окна будет черным, а заним будет следовать окно с изображением текущего кадра игры. Одним словом в каждой игре может быть настроено коно по разному и самый верный вариант это перехватывать смену буферов и рисовать внем непосредственно перед тем как он будет выведен
-------------------- С наилучшими пожеланиями !!! |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
Дык какая разница про напрямую-то? я легко могу повесить окно винды над окном игры... без проблем... вот я к чему вел.
-------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
Baa
покажи -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
У мя ща проблемы с выкладыванием в инет, но последовательность могу описать... запустил ку2, загрузил q2dm1 (карта), нажал alt+enter, он перешел в оконный режим, дальше нажал ctrl+esc, появился task manager поверх окна игрушки... никаких проблем.
-------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
Мне кажется, если найти главное окно D3D/GL-приложения и субклассировать его на свой оконный класс (получится фильтр сообщений), то можно после вызова WM_PAINT-обработчика игрушки вызвать свой WM_PAINT.
Вроде, все директы/ГЛы рисуют не "абы-куда", а в контекст вывода. Поэтому и должно сработать. -------------------- ![]() |
|||
|
||||
| knave |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 6.3.2003 Где: Санкт-Питербург ( Россия) Репутация: 1 Всего: 5 |
так с это ене вовсех играх прокатывает, все завист от режима настройки DD. У меня в одних такое прокатывало а в других нет
-------------------- С наилучшими пожеланиями !!! |
|||
|
||||
| knave |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 6.3.2003 Где: Санкт-Питербург ( Россия) Репутация: 1 Всего: 5 |
Хотя наверняка как том ожно выводить
-------------------- С наилучшими пожеланиями !!! |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
А вот стили окна, которое поверх игрушек рисуется
Window Styles: WS_POPUP WS_VISIBLE WS_CLIPSIBLINGS Extended Styles: WS_EX_LEFT WS_EX_LTRREADING WS_EX_RIGHTSCROLLBAR WS_EX_TOPMOST WS_EX_TOOLWINDOW WS_EX_LAYERED -------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |