Программа на си. Задаю кол-во панелей, их размеры и указываю каждой панеле что ей делать (конкретнее думаю тут смысла нет объяснять). Есть панель которая занимается текстом. Текст перемещается. И при перемещении текста возникает его мерцание довольно сильное. Мб ктонибудь подскажет как можно решить эту проблему? Нарыл в инете инфу об SetVisualPage и SetActivePage, но они используются для всего экрана, а не для части.. Заранее благодарен за любые ответы
ты это про DOS? задать активную страницу для части экрана нельзя а текст мерцает, потому что ты его стираешь, а потом снова перерисовываешь, наверное
под win32. писал прогу не я, а человек который писал программу говорит что скорее всего без DirectX не обойтись. а насчет перерисовки... помойму там не перерисовывается, текст смещается на 1 пиксель за 1 такт и вот примерно через 10 пикселей мерцает. а это исправление довольно срочно надо. может быть ктонибудь подскажет, желательно с примеров кода. могу произвести умеренную плату..
Mihey Туфта, GDI может рисовать без всяких мерцаний. IMHO он не может сместиться без перерисовки. Посмотри может надо вначале рисовать на внеэкранный буфер, потом вызывать InvalidateRect. Которое вызывает WM_PAINT. А в WM_PAINT: BeginPaint BitBlt - c внеэкранного на экран. EndPaint Ну это конечно если отображаешь текст в панелях сам. А не с помощью каких-то спец. контролов.
лучше не перемещать попискельно, а перерисовать текст заново. или я чето в смысл темы немного не въехал
А как передвигаются панели? Если с использованием MoveWindow, то надо последний параметр установить на FALSE, а после отпусканее заголовка послать WM_PAINT - что бы на всякий случай прорисовать текст... этот способ не гарантирует корректное отображение текста при перетаскивании. А DDraw толковая идея, что бы не говорили иногда GDI таки мерцает(при BitBlt точно, тока пока он работает с контекстом, стоит его использовать в DirextX - и о чудо, мерцаний нет...) и переход прорисовки на DDraw снимает эту проблему, но использовать в этом случае я считаю не целесобразно. Другое решение - зачем отображать содержимое экрана при передвижении - сделать невидемым контрол отображающий текст.