Класс GDI+ Color имеет функции Get*, которые возвращают значения определенных цветов и альфа-канала (например, GetR и GetRed; две из них предназначены для одного и того же! ) и в то же время не хватает функций Set для отдельных каналов. Существуют только функции типа SetValue, которые устанавливают все компоненты сразу, что не совсем удобно.
Конечно, я всегда могу написать
Код: Выделить всё
inline void SetAlpha(Color& color, BYTE alpha) {
color.SetValue(Color::MakeARGB(alpha, color.GetR(), color.GetG(), color.GetB()));
}
и то же самое для других компонентов Color, но мне не хватает какого-то простого способа доступа к компонентам Color?
Если нет, то в чем может быть причина такой конструкции? Это своего рода соображения совместимости или производительности?
Подробнее здесь:
https://stackoverflow.com/questions/790 ... -gdi-color