Program Explorer-štýl vlastné šablóny

Definovať ďalšie ovládacie prvky dialógového okna Prieskumník-štýl Otvoriť alebo Uložiť ako používať OPENFILENAME štruktúru určiť šablónu pre dieťa dialógovým oknom, ktorý obsahuje ďalšie ovládacie prvky. Ak vaše dieťa dialógové okno Šablóna je prostriedok v prihláške alebo v knižnici DLL, nastaviť príznak OFN_ENABLETEMPLATE v členských štátoch vlajok a použiť hInstance a lpTemplateName členov štruktúru na identifikovanie názov modulu a zdrojov. Ak šablóna je už v pamäti, nastaviť príznak OFN_ENABLETEMPLATEHANDLE a na identifikáciu objektu pamäť, ktorý obsahuje šablónu, použite členských hInstance . Pri poskytovaní dieťa dialógového okna šablóny pre dialógové okno Prieskumník-štýl, musíte tiež nastaviť OFN_EXPLORER zástava; v opačnom prípade systém predpokladá, náhradné šablóny sú zabezpečujúcich old-štýl dialógovým oknom. Zvyčajne, ak poskytnete ďalšie ovládacie prvky, môžete musí tiež zabezpečovať Explorer-štýl háku postup spracovávať správy nové ovládacie prvky.

Môžete vytvoriť šablónu dieťa dialógové okno pole ako akúkoľvek inú šablónu, okrem toho, že musí určiť štýly, WS_CHILD a WS_CLIPSIBLINGS a mali by určiť štýly, DS_3DLOOK a DS_CONTROL. Systém si vyžaduje WS_CHILD štýl, pretože šablóna definuje dieťa dialógové okno predvoleného Otvoriť alebo Uložiť ako dialógového okna. WS_CLIPSIBLINGS štýl zabezpečuje, že dialógové okno dieťa nefarbite cez všetky ovládacie prvky v dialógovom okne predvolené. DS_3DLOOK štýl zabezpečuje, že vzhľad ovládacie prvky v dialógovom okne dieťa je v súlade s ovládacie prvky v dialógovom okne predvolené. DS_CONTROL štýl zabezpečuje, že sa užívateľ môže používať kartu a iných navigačných klávesov pohybovať medzi všetky ovládacie prvky, predvolené alebo Vlastná v dialógovom okne prispôsobené.

Aby sa urobilo miesto pre nové ovládacie prvky systému rozbalí dialógové okno predvolenú šírku a výšku vlastných dialógového okna. Podľa predvoleného nastavenia sú všetky ovládacie prvky z vlastných dialógového umiestnená pod ovládacie prvky v dialógovom okne predvolené. Avšak, môžete prepísať toto predvolené umiestnenie vrátane statického textu ovládacieho prvku v šablóne vlastných dialógového okna pole a priradenie hodnoty identifikátora kontroly stc32. (Táto hodnota je definovaná v DLG.H hlavička súboru.) V tomto prípade systém používa ovládací prvok ako referenčný bod pre stanovenie tam, kde chcete umiestniť nové ovládacie prvky. Všetky nové ovládacie prvky nad a naaavo od stc32 kontroly sú umiestnené v rovnakej výške nad a naaavo od ovládacie prvky v dialógovom okne predvolené. Nové ovládacie prvky pod a právo stc32 kontroly sú umiestnené dole a napravo od predvoleného nastavenia kontroly. Vo všeobecnosti každý nový ovládací prvok je umiestnený tak, aby sa rovnaké poloha predvolené ovládacie prvky, ako by mal na stc32 kontrolu. Aby priestor pre tieto nové ovládacie prvky systému pridá medzeru vľavo, vpravo, dolnej a hornej časti dialógového okna predvoleného nastavenia podľa potreby.

Systém vyžaduje, aby príslušná procedúra spracovať všetky správy určené na vlastných dialógového a preto odošle rovnaké okno správy príslušná procedúra do iného režimu poli dialógového okna. Napríklad, príslušná procedúra prijíma WM_COMMAND správy, keď používateľ klikne na tlačidlo kontroly v dialógovom okne vlastné. Príslušná procedúra je zodpovedný za inicializácie týchto kontrol a načítava hodnoty z kontrol zatvorenom dialógovom okne. Všimnite si, že keď príslušná procedúra dostane správu WM_INITDIALOG , systém ešte nepokročilo ovládacích prvkov do ich konečnej polohy.

Postupu predvoleného dialógového okna poľa popisovačov správy pre všetky ovládacie prvky v dialógovom okne predvolené, ale príslušná procedúra dostane WM_NOTIFY oznámenia správy na akcie používateľa na týchto kontrol, ako je opísané v Explorer-štýl háku postupy.