![]() |
|
![]() ![]() ![]() |
|
torero |
|
|||
Бывалый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 177 Регистрация: 1.2.2006 Репутация: нет Всего: нет |
У меня "вид" на основе CView, но в этот "вид" вложено ещё одно окно:
CClientDC dc(pViv); А, чтобы при скроллинге не было мерцаний, хотел использовать метод: OnEraseBkgnd(CDC* pDC); return TRUE; Но pDC относится к клиентской области "вида". А окно pViv уже не клиентская область. Можно ли использовать OnEraseBkgnd для неклиентского окна? Сам скроллинг я делаю так: 1. Меняю начало координат x0 и y0 и вызываю метод dc.SetWindowOrg(x0,y0); 2. Закрашиваю окно dc.FillSolidRect(rect,pDoc->m_BGColor ); 3. Вывожу информацию снова. Может быть здесь что-то изменить? В тех "видах", которые сделаны на основе класса CScrollView нет мерцания, как это сделано? |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 2 Всего: 154 |
это двойная буферизация, сначало нужно рисовать в буфер а потом на экран |
|||
|
||||
torero |
|
|||
Бывалый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 177 Регистрация: 1.2.2006 Репутация: нет Всего: нет |
Lazin, непонятно. Что такое буфер? Если это переменные: int,CString и т. д.
то они уже есть. Какая здесь технология? Это сообщение отредактировал(а) torero - 4.9.2007, 03:43 |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 2 Всего: 154 |
Мерцание происходит из за того что сразу рисуешь в окне.
Двойная буферизация - это когда создаешь нужное изображение в памяти, а потом рисуешь его в окне. |
|||
|
||||
torero |
|
|||
Бывалый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 177 Регистрация: 1.2.2006 Репутация: нет Всего: нет |
А как создать изображение в памяти? В CMemFile записать или ещё как?
|
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 5 Всего: 98 |
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
torero |
|
|||
Бывалый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 177 Регистрация: 1.2.2006 Репутация: нет Всего: нет |
Спасибо за советы, разобрался и сделал свой пример. Работает.
Но при скроллинге перемещение происходит с большим запаздыванием. И даже, когда закрываю программу (по Exit), то закрывается она в течении семи секунд. Отчего это может быть? |
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 16 Всего: 92 |
||||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |