Re: Правильная прорисовка прозрачных иконок
От: AcidTheProgrammer Россия https://hts.tv/
Дата: 27.07.05 16:44
Оценка:
Здравствуйте, Terminator Nemo, Вы писали:

TN>Всем привет!

TN>Проблема следующая. Необходимо реализовать некоторое количество окошек (прямых наследников CWnd), являющихся в большинстве своем картинками. Картинку нужно выводить как прозрачную (т.е. белый цвет — прозрачный). Причем мы не знаем на каком фоне рисуем, т.е. нельзя просто стирать фон. Сама прорисовка, конечно, без проблем. Но вот когда начинаем обновлять картинку, она рисуется поверх предыдущей, не стирая ее.
TN>Конечно можно делать перед обновлением GetParent()->RedrawWindow(), но это неэффективно, т.к. требует полной прорисовки родителя, чего нельзя допустить. Обязывать родителя устанавливать свой background для таких детей — тоже не очень хорошо.
TN>Как же это можно сделать?

Смотри в сторону функций SetWindowRgn. Сначало по маске прозрачности нужно построить нужный регион, а уже потом SetWindowRgn.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.