Okno postup Superclassing

Superclassing je technika, ktorá umožňuje aplikácii vytvoriť novú triedu okna základné funkcie existujúce triedy plus vylepšenia uvedené v žiadosti. Supertrieda vychádza z existujúcich okno triedy s názvom Základná trieda. Často sa stáva, základná trieda je globálny okno triedy systému ako napríklad ovládací prvok úpravy, ale môže byť akékoľvek triedu okna.

Supertrieda má svoje vlastné okno režimu nazývaného supertrieda režim. Supertrieda postup môže trvať tri akcie po obdržaní správy: môžete preniesť správy na pôvodné okno postup, správu upravovať a preniesť na pôvodný okno postup alebo spracovať správu a neprepadnú pôvodného okno postupu. Ak postupu supertrieda spracováva správu, že tak predtým, urobiť po tom, alebo oboch pred a po prechádza správy na pôvodné okno postup.

Na rozdiel od postupu podtriedy postup supertrieda dokáže spracovať okno vytvorenie správy (WM_NCCREATE, WM_CREATEa tak ďalej), ale obligatórne ich pôvodné base-Trieda okna postupu aj tak, že base-Trieda okna postup môžete vykonať jeho Inicializácia režimu.

Na supertrieda triedu okna aplikácie najprv zavolá funkciu GetClassInfo získavať informácie o základnú triedu. GetClassInfo vyplní WNDCLASS štruktúru s hodnotami zo WNDCLASS štruktúry základná trieda. Ďalšie uplatňovanie skopíruje svoje vlastné popisovač inštancie do hInstance členského WNDCLASS štruktúra a skopíruje názov supertriedy do lpszClassName členské. Ak základná trieda má menu, uplatňovanie musia poskytnúť Nová ponuka s tými istými identifikačnými ponuky a skopírovať názov ponuky do členských lpszMenuName . Ak postup supertrieda procesov WM_COMMAND správy a neprechádza na okno postup základná trieda, v ponuke nemusia mať príslušné identifikátory. GetClassInfo nemôže vrátiť lpszMenuName, lpszClassNamealebo hInstance členského WNDCLASS štruktúra.

Žiadosť tiež nastaviť lpfnWndProc členského WNDCLASS štruktúru. Funkcia GetClassInfo zadá tohto člena s adresou pôvodného okno postup pre túto triedu. Žiadosť musí uložiť túto adresu prejsť správy do režimu pôvodný okno a potom skopírujte adresu supertrieda postup do lpfnWndProc členské. Žiadosti ak je to potrebné, upraviť ostatným členom WNDCLASS štruktúru. Po vyplní WNDCLASS štruktúru, uplatňovanie registruje supertriedu premytím adresy štruktúra funkciu RegisterClass . Supertriedu môžete potom použiť na vytvorenie systému windows.

Pretože superclassing registre novú triedu okna, žiadosť môžete pridať extra triedy bajtov a ďalšie okno bajtov. Supertriedu nesmie používať pôvodnú dodatočných bajtov pre základnú triedu alebo okno z rovnakých dôvodov, aby inštancie podtried alebo globálne podtrieda nepoužívali ich. Tiež, ak uplatňovanie dodáva dodatočných bajtov pre jeho použitie na triedu alebo inštanciu okno musí referenčné dodatočných bajtov, ktoré vzhľadom na počet dodatočných bajtov, ktoré používajú pôvodný základná trieda. Pretože počet bajtov použitých základná trieda sa môže meniť z jednej verzie základná trieda k druhému, počiatočný offset supertrieda vlastné dodatočných bajtov, ktoré tiež môžu líšiť z jednej verzie základná trieda na budúci.

Index