popisovač okna definície programovacieho okna

Windows Programming Definition Window Handle



HWND hwnd

Čo je rukoväť?



Pôvodná definícia rukoväte je typedef void * HANDLE



Je to ukazovateľ, ktorý v 32-bitových oknách zaberá 4 bajty, veľkosť pamäte, na ktorú ukazuje, je určená jeho typom. Na prenos údajov používajú funkcie úchytky. Rukoväť je v serveri winnt.h definovaná takto:



#ifdef STRICT typedef void *HANDLE This is the definition of HANDLE #define DECLARE_HANDLE(name) struct name##__ { int unused } typedef struct name##__ *name #else typedef PVOID HANDLE #define DECLARE_HANDLE(name) typedef HANDLE name #endif typedef HANDLE *PHANDLE

Modifikátor STRICT znamená, či typ premennej vyžaduje prísnu definíciu. Tu vidíme, že HANDLE je vlastne ukazovateľ typu void. Na čo to je? Každý, kto sa naučil jazyk C / C ++, vie, že ukazovateľ typu void je možné previesť na ukazovateľ ľubovoľného typu nútenou konverziou typu a jeho použitie je najpružnejšie. V mnohých prípadoch je rukoväť ukazovateľ na objekt alebo adresa, adresa objektu. Napríklad pre blok (objekt) alokovanej pamäte je jeho popisovač jeho prvá adresa, čo nie je žiadny problém. Ale to nie je vždy pravda, najmä pre kľučky, ktoré nemajú žiadny objektový význam. Závisí to od definície systému. Napríklad typ systémového háku HHOOK je zbytočné tvrdiť, že ide o adresu. To isté platí pre kľučky okien. V týchto prípadoch môžeme popisovač chápať ako ID niečoho v zozname vecí v systéme.  

Nasledujú bežné typy popisovačov pre aplikácie systému Windows:

Typ rukoväte



Vysvetlenie

Typ rukoväte

Vysvetlenie

RÚČKA

Všeobecný typ rukoväte

HICON

Typ rukoväte ikony

HWND

Typ okennej kľučky

HCURSOR

Typ rukoväte kurzora

HINSTANCE

Rukoväť inštancie programu

HBRUSH

Typ rukoväte štetca

HDC

Rukoväť popisu zariadenia

HPEN

Typ rukoväte štetca

HMENU

Typ rukoväte ponuky

HFONT

Typ rukoväte písma

HBITMAP

Typ popisovača bitmap

HFILE

Typ rukoväte súboru

Najzákladnejší popisovač je definovaný ako HANDLE, čo je vlastne void * type alebo int type.

Okná popisovač hwnd sa používa na uloženie popisovač okna vrátené CreateWindow. CreateWindow bude založené na názve aplikácie szAppName Zodpovedajúca trieda objektov okna vytvorí okno a vráti rukoväť okna.

Upozorňujeme, že medzi kľučkou okna a kľučkou aplikácie je rozdiel.

Popisovač okna je užívateľské rozhranie, to znamená popisovač rozhrania, a užívateľ môže ovládať vstup alebo výstup rozhrania prostredníctvom tohto popisovača. Napríklad získate vstupnú hodnotu ovládacieho prvku z rozhrania alebo nakreslite grafiku na rozhraní.

Popisovač inštancie aplikácie riadi celú aplikáciu.