двойная буферизация в MFC
От: VladOfMonster  
Дата: 01.10.09 07:26
Оценка:
Здравствуйте.
Как создать двойную буферизацию в программе, написанной в Microsoft Visual C++ с использование технологии MFC.
Тип окна: CWnd.
Подскажите, пожалуйста. Я принцип знаю, пока то обрабатывается, нужно обработать то в памяти, вывести на экран, а как реализовать в код, я не знаю.

Мне нужно сделать двойную буферизацию ctoolbar,cwnd,cbutton и т.д.

Somebody help me, please!!!

01.10.09 13:44: Перенесено модератором из 'C/C++' — Кодт
Re: двойная буферизация в MFC
От: Went  
Дата: 01.10.09 09:00
Оценка:
Здравствуйте, VladOfMonster, Вы писали:

VOM>Мне нужно сделать двойную буферизацию ctoolbar,cwnd,cbutton и т.д.


Бррр... Win контролы не рисуются по-фреймово, то есть они просто рисуются в функции OnPaint, когда система (или ты) решили, что изображение на них устарело. Двойная буфферизация нужна в по-фреймовом рисовании. Но для такого рисования GDI не подходит, лучше создай на окне контекст OpenGL и там установи Double Buffering. Ну, а если тебе нужно все-таки изобразить что-то в GDI, чтобы оно мгновенно отобразилось, то создай битмап в памяти, на нем создай контекст, нарисуй, а потом BitBlt на контекст окна. Я думаю, только так.
Re: двойная буферизация в MFC
От: Pavel Dvorkin Россия  
Дата: 01.10.09 10:47
Оценка:
Здравствуйте, VladOfMonster, Вы писали:

VOM>Здравствуйте.

VOM>Как создать двойную буферизацию в программе, написанной в Microsoft Visual C++ с использование технологии MFC.
VOM>Тип окна: CWnd.
VOM>Подскажите, пожалуйста. Я принцип знаю, пока то обрабатывается, нужно обработать то в памяти, вывести на экран, а как реализовать в код, я не знаю.

VOM>Мне нужно сделать двойную буферизацию ctoolbar,cwnd,cbutton и т.д.


CToolbar оставь в покое, он и сам умеет отрисовываться. CButton тоже. CWnd класс абстрактный, а если у его наследников надо, то как написал Went.

А лучше объясни, что тебе сделать надо. Может, тут не только двойная, но и одиночная не нужна
With best regards
Pavel Dvorkin
Re: двойная буферизация в MFC
От: SchweinDeBurg Россия https://zarezky.spb.ru/
Дата: 01.10.09 13:29
Оценка:
Здравствуйте, VladOfMonster, Вы писали:

VOM>Здравствуйте.

VOM>Как создать двойную буферизацию в программе, написанной в Microsoft Visual C++ с использование технологии MFC.
VOM>Тип окна: CWnd.

Flicker Free Drawing In MFC
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by silence ]
- Искренне ваш, Поросенок Пафнутий
Re[2]: двойная буферизация в MFC
От: Went  
Дата: 01.10.09 14:16
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

SDB>Flicker Free Drawing In MFC


От бликов часто спасает просто правильная (выборочная) инвалидация областей контрола по происходящим событиям.
Re[3]: двойная буферизация в MFC
От: SchweinDeBurg Россия https://zarezky.spb.ru/
Дата: 01.10.09 14:18
Оценка: 1 (1)
Здравствуйте, Went, Вы писали:

W>От бликов часто спасает просто правильная (выборочная) инвалидация областей контрола по происходящим событиям.


Это я знаю. Но класс CMemDC, который прилагается к данной статье, как раз и предназначен для реализации той самой двойной буферизации, которой интересуется ТС, и легко может быть повторно использован.
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by silence ]
- Искренне ваш, Поросенок Пафнутий
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.