Aby zdefiniować dodatkowe kontrolki okna dialogowego Otwórz stylu Eksploratora lub Zapisz jako , użyj struktury OPENFILENAME określić szablon okno dialogowe dziecka, który zawiera dodatkowe formanty. Jeśli szablon okno dialogowe dziecko jest zasobem w aplikacji lub biblioteka dołączana dynamicznie, ustawienie flagi OFN_ENABLETEMPLATE Członkowskich flagi i zidentyfikuj nazwę modułu i zasobów za pomocą członków wystąpienie hInstance i lpTemplateName struktury. Jeśli szablon znajduje się już w pamięci, należy ustawić flagę OFN_ENABLETEMPLATEHANDLE i służy do identyfikowania obiektu pamięci, który zawiera szablon Członkowskie wystąpienie hInstance . Przy podawaniu dziecko okno szablon stylu Eksploratora okna dialogowego, należy także ustawić flagę OFN_EXPLORER; w przeciwnym razie system zakłada, że szablon zastąpienia przewidujące okno dialogowe w starym stylu. Zazwyczaj jeśli dodatkowe kontrole, ponadto należy podać stylu Eksploratora spinanie procedury do procesu wiadomości dla nowych formantów.
Można utworzyć szablon pole dialogowe dziecka, jak w innym szablonie, chyba że użytkownik musi określić style WS_CHILD i WS_CLIPSIBLINGS i należy określić style DS_3DLOOK i DS_CONTROL. System wymaga styl WS_CHILD, ponieważ szablonu określa okno dialogowe okno dialogowe Otwórz i Zapisz jako domyślne z dzieckiem. Styl WS_CLIPSIBLINGS zapewnia, że dziecko, okno dialogowe nie malowanie nad formantów w oknie dialogowym domyślna. Styl DS_3DLOOK sprawia, że wygląd formantów w oknie dialogowym dziecko jest zgodny z formantów w oknie dialogowym domyślna. Styl DS_CONTROL upewnia się, że użytkownik może zastosować kartę i pozostałe klawisze nawigacyjne do przechodzenia między wszystkie formanty, domyślne lub niestandardowy, w oknie dialogowym Niestandardowy.
Aby zwolnić miejsce na nowe formanty, system powiększa okno dialogowe domyślną szerokość i wysokość niestandardowe okno dialogowe. Domyślnie, wszystkie formanty z okna dialogowego niestandardowe są pozycjonowane poniżej formantów w oknie dialogowym domyślna. Jednakże można zastąpić domyślne położenie w tym formancie tekst statyczny w szablonie pole niestandardowe okna dialogowe i przypisując mu wartość Identyfikator formantu stc32. (Ta wartość jest określona w DLG.H nagłówka pliku.) W tym przypadku system używa formantu jako punkt odniesienia dla określenia położenie nowych formantów. Wszystkie nowe formanty powyżej i z lewej strony formantu stc32 są pozycjonowane taką samą kwotę powyżej i po lewej stronie formantów w oknie dialogowym domyślna. Nowe formanty poniżej i po prawej stronie formantu stc32 są umieszczone poniżej i po prawej stronie formanty domyślne. Ogólnie każdy nowy formant jest umieszczony tak, że posiada taką samą pozycję formanty domyślne, jak to miało do sterowania stc32. Aby zwolnić miejsce dla tych nowych formantów, system doda miejsca w lewo, prawej, dolnej i górnej części okna dialogowego domyślne w razie potrzeby.
System wymaga procedura haka przetworzyć wszystkie wiadomości przeznaczonych dla pola niestandardowe okna dialogowe i wysyła więc samej wiadomości okno do procedury haka jak wszelkie inne procedury w polu okna dialogowego. Na przykład procedura haka odbiera wiadomości WM_COMMAND , gdy użytkownik kliknie przycisk formantów w niestandardowym oknie dialogowym. Procedura haka jest odpowiedzialny za inicjowanie tych formantów i pobieranie wartości z kontroli, gdy to okno dialogowe jest zamknięte. Należy zauważyć, że gdy procedura haka odbierze komunikat WM_INITDIALOG , system nie jeszcze przeszło formanty do ich ostatecznego stanowiska.
Domyślnie okno dialogowe pole procedury obsługi wiadomości dla wszystkich formantów w oknie dialogowym domyślna, ale procedura haka otrzymuje WM_NOTIFY wiadomości na akcje użytkownika na tych formantów, zgodnie z opisem w Stylu Eksploratora Hook procedury.