Я использую UpdateLayeredWindow для создания многоуровневого окна, и я реализовал логику рисования для дочерних элементов управления. Моя проблема заключается в том, что каждый раз, когда происходит изменение UI, весь фрейм необходимо перерисовать. Я задавался вопросом, существует ли способ только перерисовать конкретный CRect или CRgn окна (т. Е. Передать соответствующий CDC в UpdateLayeredWindow, но указав, что CRect вы хотите быть invlidated).Использование UpdateLayeredWindow в области окна
Будет ли использовать UpdateLayeredWindowIndirect и установить prcDirty CRect в структуре UPDATELAYEREDWINDOWINFO, в клиентскую область элемента управления, вызвать обновление только этой области?
Что касается функции UpdateLayeredWindowIndirect? В нем говорится, что prcDirty RECT в параметре UPDATELAYEREDWINDOWINFO используется, чтобы указать это, правильно ли это? – user965369
Это объясняется в документации. «Область, подлежащая обновлению. Этот параметр может быть NULL. Если он не является NULL, только область в этом прямоугольнике обновляется от источника DC». Он ограничивает область обновления. –
Я знаю, что говорит док, я просто хотел, чтобы какая-то проверка, что это на самом деле работает аффективно и создает желаемый аффект. – user965369