Использование DirectX D2 в обработке сообщения NM_CUSTOMDRAW
От: Melamed Россия  
Дата: 04.12.23 10:07
Оценка:
Навигационное сообщение NM_CUSTOMDRAW используется для перерисовки пользователем некоторых элементов в ряде управляющих элементов, например TrackBar, TreeView, ListView
Хотел сделать нестандартный ползунок в ТrackBar. Написал обработчик сообщения NM_CUSTOMDRAW на GDI все работает нормально, но качество графики мне не понравилась. Решил переписать его используя DirectX D2 и тут началось следующая пляска: TrackBar не рисуется, когда создается окно, а рисуется только тогда, когда переместится ползунок, причем ползунок рисуется правильно, а все другие элементы рисуются черным цветом
Re: Использование DirectX D2 в обработке сообщения NM_CUSTOMDRAW
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 04.12.23 10:57
Оценка:
Здравствуйте, Melamed, Вы писали:

M>Решил переписать его используя DirectX D2


Что это такое? Если имеется в виду DirectDraw, то он рисует главным образом не в окно, а непосредственно на экран, минуя оконную подсистему. То есть, рисовать с его помощью имеет смысл только от, что или никогда не будет перекрыто окнами, или будет восстановлено вручную.
Re[2]: Использование DirectX D2 в обработке сообщения NM_CUS
От: Melamed Россия  
Дата: 04.12.23 11:28
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Здравствуйте, Melamed, Вы писали:


M>>Решил переписать его используя DirectX D2


ЕМ>Что это такое? Если имеется в виду DirectDraw, то он рисует главным образом не в окно, а непосредственно на экран, минуя оконную подсистему. То есть, рисовать с его помощью имеет смысл только от, что или никогда не будет перекрыто окнами, или будет восстановлено вручную.


C Windows 8.1 DirectDraw в Microsoft переименовали в Direct D2 Довольно мощное средство для рисования D2 графики и обработки графических файлов. Подробнее Direct2D
Там есть интерфейс ID2D1HwndRenderTarget, который позволяет выводить графику в окно
Отредактировано 04.12.2023 11:43 Melamed . Предыдущая версия . Еще …
Отредактировано 04.12.2023 11:41 Melamed . Предыдущая версия .
Отредактировано 04.12.2023 11:32 Melamed . Предыдущая версия .
Re[3]: Использование DirectX D2 в обработке сообщения NM_CUS
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 04.12.23 17:16
Оценка: 2 (1)
Здравствуйте, Melamed, Вы писали:

M>C Windows 8.1 DirectDraw в Microsoft переименовали в Direct D2


Ну так Direct2D, а не "DirectX D2".

M>Там есть интерфейс ID2D1HwndRenderTarget, который позволяет выводить графику в окно


Требования по организации Direct2D Render Loop соблюдаете?

Проверьте, в каком порядке обрабатываются стадии NM_CUSTOMDRAW, правильные ли коды CDRF_XXX возвращаются, и т.п.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.