Okno dieťa má WS_CHILD štýl a obmedzuje na klientskej oblasti rodičovské okno. Aplikácia používa obyčajne podriadené okná rozdeliť do klientskej oblasti rodičovské okno na funkčných oblastiach. Môžete vytvoriť dcérskym oknom zadaním WS_CHILD štýl v CreateWindowEx funkcii.
Okno dieťa musí mať rodičovské okno. Rodičovské okno môže byť prekrývajúca okna, pop-up okná alebo dokonca pre ďalší dcérskym oknom. Zadáte rodičovské okno, keď budete volať CreateWindowEx. Ak zadať štýl WS_CHILD v CreateWindowEx , ale nešpecifikujú rodičovské okno systému nevytvorí okna.
Dieťa okno má klient oblasti, ale žiadne iné funkcie, pokiaľ sa výslovne nepožiada. Aplikáciu môžete požiadať záhlaví okna ponuka okno, minimalizovať a maximalizovať tlačidlá, orámovania a posúvačov dcérskym oknom, ale dcérskym oknom nemôže mať ponuku. Ak aplikácia určuje ponuka rukoväť, buď ak registre triedu okna dieťaťa alebo vytvorí dcérskym oknom, sa neberie do úvahy ponuky rukoväť.
Systému vždy umiestňuje dcérskym oknom vzhľadom na ľavý horný roh oblasti jeho rodičovské okno klienta. Žiadna časť okna dieťaťa vôbec sa zobrazí mimo hraníc jej rodičovské okno. Ak aplikácia vytvorí dieťa okna, ktoré je väčšie ako rodičovské okno alebo pozície dcérskym oknom tak, že niektoré alebo všetky dcérskym oknom presahuje hranice materského podniku, systém klipy dcérskym oknom; to znamená, nie je zobrazená časť mimo oblasti rodičovské okno klienta. Akcie, ktoré majú vplyv na rodičovské okno môže tiež ovplyvniť dcérskym oknom takto.
Rodičovské okno | Dcérskym oknom |
---|---|
Zničený | Zničené pred rodičovské okno je zničený. |
Skryté | Skryté pred rodičovské okno skryté. Dieťa okna je viditeľný iba vtedy, ak materský okna je viditeľný. |
Presunie | Presťahoval so oblasti rodičovské okno klienta. Dcérskym oknom je zodpovedný za natieranie oblasti svojho klienta po cestách. |
Zobrazené | Zobrazuje po rodičovské okno zobrazené. |
V systéme nie automaticky klip dcérskym oknom z oblasti rodičovské okno klienta. To znamená, rodičovské okno čerpá nad dcérskym oknom, ak vykonáva akékoľvek kreslenie na tom istom mieste ako je dcérskym oknom. Systém však klip dcérskym oknom z oblasti rodičovské okno klienta, ak rodičovské okno má WS_CLIPCHILDREN štýl. Ak sa vystrihajú dcérskym oknom rodičovské okno nemôže čerpať nad ním.
Dieťa okno môže prekrývať oknami dieťa v tej istej oblasti klienta. Dcérskym oknom, ktorý zdieľa rovnaké rodičovské okno ako jednému alebo viacerým iným podriadené okná sa nazýva súrodenec okna. Súrodenec windows môžete nakresliť v druhej strany klient priestoru, pokiaľ jedna podriadené okná WS_CLIPSIBLINGS štýlu. Ak dieťa okno tento štýl, akúkoľvek časť svojho súrodenca okno, ktoré leží v okne dieťa obmedzí.
Ak okno štýl WS_CLIPCHILDREN alebo WS_CLIPSIBLINGS, miernu stratu výkonu sa vyskytne. Každú testovaciu jamku zaberá systémových prostriedkov, takže aplikácia by nemali používať podriadené okná neobmedzene. Najlepší výkon dosiahnete, aplikáciou, ktorá potrebuje logicky rozdeliť jej hlavné okno tak mali urobiť v postupe okno hlavného okna, skôr než pomocou podriadené okná.
Aplikáciu môžete zmeniť parent window existujúceho okna dieťa volaním funkcie SetParent . V tomto prípade systému odstráni dcérskym oknom z klientskej oblasti okna starý rodič a presunie do klientskej oblasti nového okna rodič. Ak SetParent určuje rukoväť NULL, pozadia okna stáva nového okna rodič. V tomto prípade okno dieťa sa zostavuje na pracovnej ploche mimo hraníc každá iná okna. Funkcia GetParent načíta rukoväť na dieťa okno rodičovské okno.
Rodičovské okno uvoľní predchádzajúcu vyhradenú časť svojho klienta oblasť dcérskym oknom a dcérskym oknom prijíma všetky vstup z tejto oblasti. Trieda okna nemusí byť rovnaký pre každý podriadené okná rodičovské okno. To znamená, že žiadosť môže zaplniť rodičovské okno s podriadené okná, ktoré vyzerajú a vykonávať rôzne úlohy. Napríklad, dialógové okno môžu obsahovať veľa typov ovládacích prvkov, každý z nich dcérskym oknom, ktorý pripúšťa rôzne typy údajov od používateľa.
Okno dieťa má len jeden rodičovské okno, ale materský podnik môžete mať ľubovoľný počet podriadené okná. Každú testovaciu jamku dieťa, zasa môžu mať podriadené okná. V tomto reťazci windows každú testovaciu jamku dieťa sa nazýva potomkov okno pôvodného rodičovské okno. Aplikácia používa funkciu IsChild na zistenie, či danej okno nie je dcérskym oknom alebo potomkov okno danej rodičovské okno.
Funkcia EnumChildWindows enumeruje podriadené okná rodičovské okno. Potom EnumChildWindows prechádza rukoväť na každé dieťa okno aplikácie definované spätné volanie funkcie. Tiež vymenované potomkov windows danej rodičovské okno.
Systém prechádza dieťa okna vstupné správy priamo do okna dieťaťa; správy nie prechádzajú cez rodičovské okno. Jedinou výnimkou je ak je dcérskym oknom vypnutá funkcia EnableWindow . V tomto prípade systém prechádza vstupné správy, ktoré by išli dcérskym oknom do okna materskej namiesto. Toto umožňuje rodičovské okno preskúmať vstupné správy a umožňujú dcérskym oknom, ak je to potrebné.
Okno dieťa môže mať jedinečné celé identifikátor. Dieťa okno identifikátory sú dôležité pri práci so systémom windows kontroly. Žiadosť nasmeruje kontrolnej činnosti odoslaním správy. Aplikácia používa ovládacieho prvku dieťa okno identifikátor priame správy do ovládacieho prvku. Okrem toho ovládací prvok odošle oznámenie správy rodičovské okno. Hlásenia zahŕňa ovládacieho prvku dieťa okno identifikátor, ktorý materský podnik používa na identifikáciu ktoré kontrolujú správu odoslal. Aplikácia určuje identifikátor dcérskym oknom pre iné typy podriadené okná nastavením parametra hMenu funkciu CreateWindowEx hodnotu, ako ponuka rukoväť.