Сейчас на форуме: hgdagon (+5 невидимых) |
eXeL@B —› Программирование —› Проблема с DirectDrew и выводом элементов управления |
Посл.ответ | Сообщение |
|
Создано: 14 августа 2007 13:29 · Личное сообщение · #1 Бэд гай! Респект Тебе! Спрашивал на других форумах - результат 0. Может знатоки подскажут. Проблема такая. Нужно в полноэкранном режиме создать приложение с использованием DirectDraw, элементов управления и диалогов. В документации написано, что нормально диалоги не видны поверх поверхности DirecDraw. Необходимо использовать IDirectDrawClipper. Присоединяю клиппер к поверхности таким кодом:
Стрка pClipper->SetHWnd( 0, m_hWnd ); нужна для того, чтобы отсекатель следил за диалогом сам. То есть он отсекает часть поверхности в той области экрана, которую занимает диалог. При этом я не забочусь о том, когда диалог появляется, закрывается или перемещается по экрану.
Диалоги становятся видны. Также сказано, что вместо IDirectDrawSurface::Flip() нужно использовать IDirectDrawSurface::Blt . Ок. Все так и делаю. И вижу диалоги в полноэкранном режиме. Мне нужно в главном окне ТАКЖЕ видеть кнопки. Написано используйте список отсечения. Код следующий:
Ок. Создаю список. Приаттачиваю клиппер к поверхности и получаю ошибку - коиппер уже установлен! И виной тому строка pClipper->SetHWnd( 0, m_hWnd ); . Если ее исключить, то в полном экране видны кнопки, а диалоги нет. А если включить-видны диалоги, а кнопки нет. Как это совместить? Чтобы было видно и то и другое. Приложение деловое, но анимации в нем столько, что использование GDI приводит к жутким тормозам! Подскажите как быть? Версия dx 7.0. Примеры смотрел. Использую VS6.0+WinApi.
|
eXeL@B —› Программирование —› Проблема с DirectDrew и выводом элементов управления |