Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

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


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 12.6.2008

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



Привет учасникам форума.

У меня такая задача, нужно написать свой LictCtrl который стилизируется(цвет текста, настраемый фонт, цвет фона  и тд и тп).
Сам контрол должен отображать большое количество даных.
 Я всё ето писал на GDI и у меня была проблема с перерисовкой (никак не мог избавится от мерцания).
И так вопрос.

Есть ли в DirectX поддержка стандартных контролов Windows. 
Если да, то можна какието ссылки, как с етим работать.
Если нет, как мне ето сделать (какими технологиями).

PM MAIL   Вверх
Alexeis
Дата 5.8.2009, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(serg405 @  5.8.2009,  17:40 Найти цитируемый пост)
 Я всё ето писал на GDI и у меня была проблема с перерисовкой (никак не мог избавится от мерцания).

  Решается двойной буферизацией. Создается битмап, при получении WM_PAINT рисуем на нем, затем его рисуем целиком при помощи BitBlt.

Всякие там директиксы только усложнят все.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
serg405
Дата 5.8.2009, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 12.6.2008

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



но если использовать BitBlt , код будет использовать много процессорных ресурсов, поскольку обрабативается очень большое количество битов.
PM MAIL   Вверх
Cheloveck
Дата 5.8.2009, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

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



serg405, ты считаешь, что сможешь сэкономить на дайректикс? Все используют двойную буферезацию, включая стандартные контролы винды. Операция копирования битмапа - это очень простой процесс, не требующий много ресурсов.


--------------------
user posted image
PM Jabber   Вверх
Alexeis
Дата 5.8.2009, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(Cheloveck @  5.8.2009,  19:51 Найти цитируемый пост)
Операция копирования битмапа - это очень простой процесс, не требующий много ресурсов. 

  Как правило эта операция делается драйвером видеокарты, поэтому выполняется достаточно эффективно. Конечно же FastBlt из DirectDraw затратит раз в 10 меньше ресурсов, но все таки тут не кино где 25 кадров в секунду. Обычно BitBlt хватает на весьма средненькой машине. На компах выпущенных до 2000 года, действительно могут быть быть проблемы с ресурсами на такого рода задачах. 
  
  Кстати еще вариант, сделать форму полупрозрачной с коэффициентом полупрозрачности 255, т.е. непрозрачной, тогда включиться виндовая двойная буферизация, но это будет тормознее чем свой bitblt.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Mad
Дата 7.8.2009, 17:23 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Эксперт
Сообщений: 656
Регистрация: 18.10.2004
Где: Одесса

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



Цитата(serg405 @  5.8.2009,  17:40 Найти цитируемый пост)
Я всё ето писал на GDI и у меня была проблема с перерисовкой (никак не мог избавится от мерцания).

кроме оработки WM_PAINT надо еще перехатывать WM_ERASEBKGND и WM_NOTIFY (во многих случаях достаточно обрабатывать только WM_NOTIFY), тогда можно решить проблему с мерцанием, + в коде обработки сообщений надо анализировать РЕГИОН ОБНОВЛЕНИЯ (функция GetUpdateRgn), это повысит производительность.

Это сообщение отредактировал(а) Mad - 7.8.2009, 17:27


--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




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


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

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