Определить, поддерживает ли система альфа-канал (через wxWidgets)

У меня есть программа wxWidgets. Для одной части этого я хочу использовать альфа-канал для «исчезновения» набора значков, если система поддерживает альфа-смешивание, и оттенков серого, если это не так, но я не могу найти способ сказать поддерживает ли система альфа-смешивание или нет.

Есть ли что-то, что я упускаю, или нет wxWidgets и/или кросс-платформенного способа сделать это?

(Я достаточно хорошо знаком с wxWidgets, но никогда раньше не занимался альфа-смешением.)


person Head Geek    schedule 03.10.2011    source источник


Ответы (1)


Насколько я могу судить, вы вызываете CanSetTransparent в окне верхнего уровня, и если оно возвращает true, вызываете SetTransparent со значением ‹ 255. Если это возвращает true, то система поддерживает альфа-прозрачность. Вы должны сделать это после отображения окна верхнего уровня, с которым вы работаете.

(CanSetTransparent просто проверяет версию ОС в Windows, всегда возвращает true в Mac OS и проверяет как версию GTK времени компиляции, так и функцию в wxGTK. SetTransparent использует разные пути в Windows и GTK в зависимости от того, равно ли значение 255 или меньше .)

person Head Geek    schedule 04.10.2011