Открийте дали системата поддържа алфа канал (чрез 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