Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Блики при скроллинге 
:(
    Опции темы
torero
Дата 3.9.2007, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 177
Регистрация: 1.2.2006

Репутация: нет
Всего: нет



     У меня "вид" на основе CView, но в этот "вид" вложено ещё одно окно:
Код

              CWnd *pViv;
              pViv=new CWnd;
          pViv->Create(NULL,NULL,WS_VISIBLE|WS_CHILD,CRect(x1,y1,xk,yk),this,11);
   Для вывода в окно информации, использую хэндл dc:
              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 нет мерцания, как это сделано?
             
PM MAIL   Вверх
Lazin
Дата 3.9.2007, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 2
Всего: 154



Цитата(torero @ 3.9.2007,  18:19)
Может быть здесь что-то изменить? В тех "видах", которые сделаны на основе
   класса CScrollView нет мерцания, как это сделано?

это двойная буферизация, сначало нужно рисовать в буфер а потом на экран
PM MAIL Skype GTalk   Вверх
torero
Дата 4.9.2007, 03:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 177
Регистрация: 1.2.2006

Репутация: нет
Всего: нет



Lazin, непонятно.  Что такое буфер? Если это переменные: int,CString и т. д.
   то они уже есть. Какая здесь технология?



Это сообщение отредактировал(а) torero - 4.9.2007, 03:43
PM MAIL   Вверх
Lazin
Дата 4.9.2007, 07:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 2
Всего: 154



Мерцание происходит из за того что сразу рисуешь в окне.

Двойная буферизация - это когда создаешь нужное изображение в памяти, а потом рисуешь его в окне.
PM MAIL Skype GTalk   Вверх
torero
Дата 4.9.2007, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 177
Регистрация: 1.2.2006

Репутация: нет
Всего: нет



    А как создать изображение в памяти? В CMemFile  записать или ещё как?
PM MAIL   Вверх
_hunter
Дата 4.9.2007, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 5
Всего: 98





--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
torero
Дата 6.9.2007, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 177
Регистрация: 1.2.2006

Репутация: нет
Всего: нет



     Спасибо за советы, разобрался и сделал свой пример. Работает.
   Но при скроллинге перемещение происходит с большим запаздыванием. И даже, когда
   закрываю программу (по Exit), то закрывается она в течении семи секунд.
   Отчего это может быть?
PM MAIL   Вверх
zkv
Дата 6.9.2007, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 16
Всего: 92



Цитата(torero @  6.9.2007,  17:57 Найти цитируемый пост)
 Отчего это может быть? 

вероятно, что-то неправильно сделал.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0933 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.