Procedury haka stylu Eksploratora

Okno dialogowe Otwórz stylu Eksploratora lub Zapisz jako można dostosować, dostarczając procedura haka i/lub w szablonie niestandardowym. Jeśli procedura haka dla okna dialogowego stylu eksploratora, system tworzy okno dialogowe, która jest elementem podrzędnym okno dialogowe domyślne. Procedura haka działa jako procedury okno dialogowe okno dialogowe dziecka. To okno dialogowe dziecko opiera się niestandardowy szablon lub szablon domyślny, jeśli żaden. Aby uzyskać więcej informacji zobacz Szablony niestandardowe stylu Eksploratora.

Aby włączyć procedurę haka okno dialogowe Otwórz stylu Eksploratora lub Zapisz jako , należy użyć strukturę OPENFILENAME , tworząc okno dialogowe. Ustawić flagi OFN_ENABLEHOOK i OFN_EXPLORER w Państwa flagi i określić adres procedura haka OFNHookProc w elemencie lpfnHook . Jeśli świadczenia procedura haka i pomijać flagę OFN_EXPLORER, należy użyć procedura haka OFNHookProcOldStyle , a otrzymasz w starym stylu interfejsu użytkownika. Aby uzyskać więcej informacji zobacz Dostosowywanie w starym stylu oknach dialogowych.

Procedura haka stylu Eksploratora odbiera szereg wiadomości, podczas gdy otwarte jest okno dialogowe. Należą do nich następujące:

Ponadto istnieje zestaw komunikatów, że można można wysyłać do okna dialogowego stylu Eksploratora uzyskanie informacji lub kontroli zachowania i wygląd okna dialogowego.

Jeśli procedura haka dla okna dialogowego stylu eksploratora, podczas procedury okno dialogowe domyślne jest przetwarzania komunikatu WM_INITDIALOG procedury pole dialogowe domyślnie tworzy okno dialogowe dziecka. Procedura haka działa jako procedury okno dialogowe okno dialogowe dziecka. W tym czasie procedura haka odbiera komunikatu WM_INITDIALOG z parametrem fikcyjnymi ustawiony adres strukturę OPENFILENAME , używane do inicjowania okna dialogowego. Po zakończeniu przetwarzania komunikatu WM_INITDIALOG okno dialogowe dziecko procedury okno dialogowe domyślne przenosi standardowych formantów, jeśli to konieczne zwolnić miejsce dla wszelkich dodatkowych formantów okna dialogowego dziecka. Procedura okno dialogowe domyślne następnie wysyła wiadomość z powiadomieniem CDN_INITDONE procedura haka.

Procedura haka otrzymuje WM_NOTIFY powiadomieniu wskazując działania podejmowane przez użytkownika w oknie dialogowym. Niektóre z tych wiadomości można używać do sterowania zachowaniem okna dialogowego. Na przykład procedura haka odbierze komunikat CDN_FILEOK, gdy użytkownik wybiera nazwę pliku i klika przycisk OK . W odpowiedzi na ten komunikat procedura haka można użyć funkcji SetWindowLong aby odrzucić zaznaczoną nazwę i obowiązujące w oknie dialogowym mogą pozostawać otwarte.

Parametr fikcyjnymi dla każdej wiadomości WM_NOTIFY jest wskaźnik do struktury OFNOTIFY , która określa działania. Członkowskie Kod w nagłówku struktury OFNOTIFY zawiera jeden z następujących kodów powiadomień.

CDN_FILEOK Użytkownik kliknął przycisk OK ; okno dialogowe ma zamknąć.
CDN_FOLDERCHANGE Użytkownik otwiera nowy folder lub katalogu.
CDN_HELP Użytkownik kliknął przycisk Pomoc.
CDN_INITDONE System zakończył inicjowanie okna dialogowego, a okno dialogowe zakończył przetwarzanie wiadomości WM_INITDIALOG . Ponadto system zakończył, rozmieszczanie formantów w oknie dialogowym wspólnej aby zwolnić miejsce dla formantów okna dialogowego dziecko (jeśli występują).
CDN_SELCHANGE Wybranych przez użytkownika nowy plik lub folder z listy plików.
CDN_SHAREVIOLATION Wspólne okno dialogowe napotkał naruszenie zasad współużytkowania pliku zamiar zwracane.
CDN_TYPECHANGE Wybranych przez użytkownika nowego typu pliku z listy typów plików.

Te komunikaty WM_NOTIFY zastępują FILEOKSTRING, LBSELCHSTRING, SHAREVISTRINGi HELPMSGSTRING zarejestrowane wiadomości używane przez poprzednie wersje okna dialogowego Otwórz i Zapisz jako . Jednakże procedura haka otrzymuje również normy zastąpionej wiadomości po wiadomości WM_NOTIFY jeśli przetwarzania WM_NOTIFY nie umożliwia SetWindowLong ustawić niezerową wartość DWL_MSGRESULT.

Aby pobrać informacji na temat stanu okna dialogowego lub kontrolować zachowanie i wygląd okna dialogowego, procedura haka można wysłać następujące komunikaty do okna dialogowego.

CDM_GETFILEPATH Pobiera ścieżkę i nazwę wybranego pliku.
CDM_GETFOLDERIDLIST Pobiera listę identyfikator elementu odpowiadającego w bieżącym folderze, aby oknie dialogowym ma Otwórz. Aby uzyskać więcej informacji na temat listy identyfikatorów elementów, zobacz element identyfikatory i identyfikator listy.
CDM_GETFOLDERPATH Pobiera ścieżki folderu bieżącego lub katalog dla okna dialogowego.
CDM_GETSPEC Pobiera nazwę pliku (nie włącznie ze ścieżką) pliku aktualnie zaznaczonego w oknie dialogowym.
CDM_HIDECONTROL Ukrywa określonego formantu.
CDM_SETCONTROLTEXT Ustawia tekst w określonym formancie.
CDM_SETDEFEXT Ustawia domyślne rozszerzenie nazwy pliku w oknie dialogowym.

Index