Jak Udělat Okno Poloprůhledné

Obsah:

Jak Udělat Okno Poloprůhledné
Jak Udělat Okno Poloprůhledné

Video: Jak Udělat Okno Poloprůhledné

Video: Jak Udělat Okno Poloprůhledné
Video: ✅ Jak vyrobit okno ze dřeva 2024, Smět
Anonim

Se zdokonalením technologií grafického zobrazení se také zlepšilo API operačních systémů, což programátorům poskytovalo stále více příležitostí pro vývoj nestandardních prvků rozhraní. Jednou z inovací operačního systému Windows 2000 byla tedy vrstvená okna, jejichž části mohly být průsvitné. Brzy byl na MSDN k dispozici popis API pro práci s vrstvenými okny. Na fórech programátorů se však stále kladou otázky, jak vytvořit poloprůhledné okno.

Jak udělat okno poloprůhledné
Jak udělat okno poloprůhledné

Nezbytné

  • - překladač;
  • - Windows SDK nebo rámec pro programování Windows -.

Instrukce

Krok 1

Získejte popisovač okna, které chcete poloprůhledné. Najděte nebo vytvořte okno. Chcete-li jej vytvořit, použijte buď funkce CreateWindow, CreateWindowEx API, nebo obalové metody kolem těchto funkcí patřících do tříd použitého rozhraní. Prototyp funkce CreateWindow vypadá takto:

HWND CreateWindow (LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nVýška, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance,

LPVOID lpParam);

Jak můžete vidět, funkce vrátí popisovač do vytvořeného okna jako výsledek provedení. Pokud je použita jakákoli obálka, použijte její metody na objekt odpovídající vytvořenému oknu, abyste získali popisovač.

Krok 2

Hledání okna lze provést pomocí volání API FindWindow, FindWindowEx, EnumWindows, EnumChildWindows, EnumThreadWindows a jejich kombinací. Popisovač okna můžete získat v určité oblasti pomocí funkcí WindowFromPoint a ChildWindowFromPoint.

Krok 3

Nastavte okno na rozšířený styl WS_EX_LAYERED. Použijte SetWindowLong API nebo odpovídající metody objektů wrapper. Funkce SetWindowLong zcela nahrazuje informace o parametru upravitelného okna, takže ji použijte v kombinaci s funkcí GetWindowLong k načtení předchozí hodnoty pro sadu příznaků stylu. Styl lze například změnit takto:

:: SetWindowLong (hWnd, GWL_EXSTYLE,:: GetWindowLong (hWnd, GWL_EXSTYLE));

Zde hWnd je popisovač okna nalezený v důsledku provedení akcí popsaných v předchozím kroku.

Krok 4

Udělejte okno poloprůhledné. Použijte SetLayeredWindowAttributes API nebo metody tříd obálky. Prototyp funkce SetLayeredWindowAttributes vypadá takto:

BOOL SetLayeredWindowAttributes (HWND hwnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags);

Krok 5

Parametr hwnd funkce musí být platný popisovač okna získaný v prvním kroku. Parametr crKey je barevný klíč používaný k definování poloprůhledných oblastí. Parametr bAlpha určuje hodnotu průsvitnosti. S hodnotou parametru bAlpha rovnou 0 budou „poloprůhledné“oblasti zcela průhledné. Pokud je parametr bAlpha 255, budou zcela neprůhledné. Parametr dwFlags určuje režim dalšího zobrazení obsahu okna. Když je v hodnotě dwFlags zahrnut příznak LWA_COLORKEY, poloprůhledné oblasti okna budou určeny na základě barevného klíče. Když je povolen příznak LWA_ALPHA, použije se k určení hodnoty průsvitnosti parametr bAlpha.

Krok 6

Aby bylo celé okno poloprůhledné, zavolejte SetLayeredWindowAttributes s preferovanou hodnotou parametru bAlpha, příznakem LWA_ALPHA, ale bez příznaku LWA_COLORKEY. Nalezený popisovač okna použijte jako první parametr funkce. Chcete-li například vytvořit poloprůhledné okno, použijte volání:

:: SetLayeredWindowAttributes (hWnd, RGB (0, 0, 0), 128, LWA_ALPHA);

Doporučuje: