© 2013 All rights reserved.
0

wxWidgets: Transparent Window

Velmi jednoduchá ukázka vytvoření průhledného okna pomocí knihovny wxWidgets.

V tomto jednoduchém příkladu si vytvoříme Dialog-based aplikaci, která bude obsahovat pouze jeden posuvník (Slider), pomocí nějž bude možné měnit hladinu transparentnosti daného okna.


wxwidgets slider

Začneme tedy posuvníkem, který může vypadat například nějak takto:
wxSlider* m_slider;

Slider má rozmezí od 0 do 10, přičemž defaultně je nastavena hodnota 10, která representuje netransparentní okno.

Aplikace obsahuje pouze tento jediný posuvník, který bude ovlivňovat transparentnost celého okna.
Pro nastavení události musíme provázat Slider s obslužnou funkcí. V tomto případě jsem zvolil provázání pomocí Ebeny Table:

Slider je provázán s funkcí OnTransparent ve třídě AlphaDialog, která bude hladinu transparentnosti nastavovat.

Hladina transparentnosti se nastaví voláním obslužné metody SetTransparent, která má jediný vstupní parametr, a to právě míru transparentnosti v rozmezí 0-255, kde 0 je maximální transparentnost:

Abychom zamezili tomu, že by okno úplně zmizlo, nastavíme minimální hodnotu na 75, a hodnotu transparentnosti ze Slideru k této hodnotě přičítáme.

Závěrem

Jedná se opravdu o velmi jednoduchou ukázku použití wxWidgets knihovny. Bohužel příklad a nastavení transparentnosti nebude fungovat v operačním systému Linux.
Celý projekt v Code::Blocks si můžete stáhnout zde: Alpha.zip

Comments are closed for this page

About
Hi, i am programmer from the Czech Republic. I love web development (Ruby, Ruby on Rails, PHP, Nette) and iOS development (Objective-C, Cocoa).
To cooperate, here is my phone:
+420 608 836