Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Visual C++/MFC/WTL > И снова о мерцании |
Автор: SmarTi 20.9.2006, 21:33 |
Всем доброго времени суток. Сразу прошу меня извинить за создание такой темы. Но прочитав всё что мне удалось найти на форуме, я так и не понял как решить мою проблему. Проблема заключается в следущем : Я рисую сетку в SDI и заполняю её очень быстро квадратами (до 20 раз в секунду),кто писал "Жизнь" тот поймёт в чём речь. Естественно при перерисовке окна появляется мерцание ![]() На сколько я понял BitBlt работает только для битмапов... так как же избавится от мерцаний ? Можно както сделать сетку постоянным фоном ? |
Автор: vinter 20.9.2006, 22:22 | ||
используй двойную буферизацию.. суть такова: сначала создаешь контекст в памяти, потом в нем рисуешь, а потом BitBlt на основной контекст. пример
|
Автор: SergeCpp 20.9.2006, 22:42 |
Жизнь!!! Завтра прикреплю сюда свои исходники ![]() И exe-шник ![]() P.S. Словарь Жизни есть? Ссылку давать? Добавлено @ 22:51 Вспомнил! http://forum.vingrad.ru/index.php?showtopic=88787&view=findpost&p=682081 я уже выкладывал! Сетка не нужна! Квадраты — их два вида — уже должны содержать в себе сетку На границах. В исходнике есть всё. Если чего не будет, пишите ПМ. Всё расскажу! Занимался этой задачей ![]() 500 в секунду ![]() Удачи! |
Автор: Sartorius 20.9.2006, 22:57 |
А я тоже как-то жизнь писал...потом сделал, что бы клетки были нескольких видов(цветов). Очень интересно наблюдать как одна популяция вытесняет другую и т.п. SmarTi , можешь потом усложнить так... |
Автор: SergeCpp 20.9.2006, 23:16 |
http://forum.vingrad.ru/index.php?showtopic=102936&view=findpost&p=782253, но архив почему-то больше Скачайте оба и сверьте, может, где что пропустил http://psoup.math.wisc.edu/Life32.html, хоть и старая, хоть и на Дельфи (не моя) ![]() http://pentadecathlon.com/dictionary/dictionary.php http://rendell-attic.org/gol/tm.htm http://rendell-attic.org/gol/turing_js_r.gif ![]() http://beluch.boom.ru/lifelex/lexr.htm |
Автор: SmarTi 20.9.2006, 23:34 | ||||
Вот как я делаю :
И в результате просто белый экран... какбудто я и ничего не рисую... В чем может быть проблема ? SergeCpp, всё таки хочется разобратся с двойной буферизацией, а твоя "Жизнь" классная ![]() |
Автор: SergeCpp 21.9.2006, 00:11 |
OnEraseBkgnd выброшена? Сразу же return TRUE нужно Добавлено @ 00:20 P.S. спать хочу ![]() ![]() |
Автор: SmarTi 21.9.2006, 00:20 | ||
Если так делать то вообще каша получается... а рисовать то что нужно не хочет. |
Автор: SmarTi 21.9.2006, 01:03 | ||||
УРАААА! Получилось ! Я просто думал что Битмап тут не при чём ![]() Получается так :
ну и конечно обработчик :
Вот если бы я сразу натнулся на примерно вот такой код.... эээх. Ладно, всем огромное СПАСИБО. Тема закрыта! иду спать ![]() |