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.