Udostępnij za pośrednictwem


Klasa CFileDialog

Hermetyzuje wspólne okno dialogowe służy do otwarty plik lub plik operacji zapisywania.

class CFileDialog : public CCommonDialog

Członkowie

Publiczne konstruktory

Nazwa

Opis

CFileDialog::CFileDialog

Konstrukcje CFileDialog obiektu.

Metody publiczne

Nazwa

Opis

CFileDialog::AddCheckButton

Dodaje przycisk wyboru do okna dialogowego.

CFileDialog::AddComboBox

Dodaje pole kombi do okna dialogowego.

CFileDialog::AddControlItem

Dodaje element do formantu kontenera, w oknie dialogowym.

CFileDialog::AddEditBox

Dodaje pole edycji w oknie dialogowym.

CFileDialog::AddMenu

Dodaje menu do okna dialogowego.

CFileDialog::AddPlace

Przeciążone.Dodaje folder do listy miejsc dostępnych dla użytkownika do otwarcia lub zapisania elementów.

CFileDialog::AddPushButton

Dodaje przycisk do okna dialogowego.

CFileDialog::AddRadioButtonList

Dodaje grupę przycisków (znany również jako przycisk radiowy) opcji okna dialogowego.

CFileDialog::AddSeparator

Dodaje separator do okna dialogowego.

CFileDialog::AddText

Dodaje treści tekstu do okna dialogowego.

CFileDialog::ApplyOFNToShellDialog

Aktualizacje stanu CFileDialog aby dopasować parametry i flagi przechowywane w m_ofn zmienną.

CFileDialog::DoModal

Wyświetla okno dialogowe i umożliwia użytkownikowi zaznaczanie jest niepotrzebne.

CFileDialog::EnableOpenDropDown

Umożliwia listy rozwijanej na Otwórz lub zapisać przycisk w oknie dialogowym.

CFileDialog::EndVisualGroup

Zatrzymuje dodanie elementów wizualnych grupy w oknie dialogowym.

CFileDialog::GetCheckButtonState

Pobiera bieżący stan przycisku wyboru (pole wyboru), w oknie dialogowym.

CFileDialog::GetControlItemState

Pobiera bieżący stan elementu w formancie kontenera, w oknie dialogowym.

CFileDialog::GetControlState

Pobiera bieżący widoczność i włączone Państwa danego formantu.

CFileDialog::GetEditBoxText

Pobiera bieżący tekst w polu edycyjnym.

CFileDialog::GetFileExt

Zwraca rozszerzenie wybranego pliku.

CFileDialog::GetFileName

Zwraca nazwę wybranego pliku.

CFileDialog::GetFileTitle

Zwraca tytuł wybranego pliku.

CFileDialog::GetFolderPath

Pobiera ścieżkę aktualnie otwartego folderu lub katalogu dla stylu Eksploratora Otwórz lub Zapisać jako wspólne okno dialogowe.

CFileDialog::GetIFileDialogCustomize

Pobiera wewnętrznego obiektu COM zamówienie CFileDialog obiektu.

CFileDialog::GetIFileOpenDialog

Pobiera wewnętrznego obiektu COM dla CFileDialog który jest używany jako Otwórz okno dialogowe pliku.

CFileDialog::GetIFileSaveDialog

Pobiera wewnętrznego obiektu COM dla CFileDialog który jest używany jako zapisać okno dialogowe pliku.

CFileDialog::GetNextPathName

Zwraca pełną ścieżkę dalej wybranego pliku.

CFileDialog::GetOFN

Pobiera OPENFILENAME struktury CFileDialog obiektu.

CFileDialog::GetPathName

Zwraca pełną ścieżkę wybranego pliku.

CFileDialog::GetReadOnlyPref

Zwraca stan wybranego pliku tylko do odczytu.

CFileDialog::GetResult

Pobiera wybór, że w oknie dialogowym użytkownika.

CFileDialog::GetResults

Pobiera wyborów przez użytkownika w oknie dialogowym, umożliwiający wybór wielokrotny.

CFileDialog::GetSelectedControlItem

Pobiera określonego towaru z określonym kontener formantów w oknie dialogowym.

CFileDialog::GetStartPosition

Zwraca pozycję pierwszego elementu listy nazw plików.

CFileDialog::HideControl

Ukrywa określony formant w stylu Eksploratora Otwórz lub Zapisać jako wspólne okno dialogowe.

CFileDialog::IsPickFoldersMode

Określa, czy bieżące okno w trybie wyboru folderu.

CFileDialog::MakeProminent

Miejsca kontroli, w oknie dialogowym tak, że wyróżnia się porównaniu do innych formantów dodanych.

CFileDialog::RemoveControlItem

Usuwa element z formantu kontenera, w oknie dialogowym.

CFileDialog::SetCheckButtonState

Ustawia bieżący stan przycisku wyboru (pole wyboru), w oknie dialogowym.

CFileDialog::SetControlItemState

Ustawia bieżący stan elementu w formancie kontenera, w oknie dialogowym.

CFileDialog::SetControlItemText

Ustawia tekst elementu sterowania.Na przykład tekst, który towarzyszy przycisk radiowy lub element menu.

CFileDialog::SetControlLabel

Ustawia tekst skojarzony z formantem, takich jak tekst przycisku lub etykiety pola edycji.

CFileDialog::SetControlState

Ustawia bieżący widoczność i włączone Państwa danego formantu.

CFileDialog::SetControlText

Ustawia tekst dla kontroli określony w stylu Eksploratora Otwórz lub Zapisać jako wspólne okno dialogowe.

CFileDialog::SetDefExt

Ustawia domyślne rozszerzenie nazwy pliku dla stylu Eksploratora Otwórz lub Zapisać jako wspólne okno dialogowe.

CFileDialog::SetEditBoxText

Ustawia bieżący tekst w polu edycyjnym.

CFileDialog::SetProperties

Zapewnia magazynu właściwości, która określa wartości domyślne, stosowaną dla elementu, które są zapisywane.

CFileDialog::SetSelectedControlItem

Ustawia stanu zapasów w grupę przycisków opcji lub pola kombi w oknie dialogowym.

CFileDialog::SetTemplate

Ustawia szablonu pole dialogowe dla CFileDialog obiektu.

CFileDialog::StartVisualGroup

Deklaruje visual grupy w oknie dialogowym.Kolejne wywołania dowolnej metody "Dodaj" dodać te elementy do tej grupy.

CFileDialog::UpdateOFNFromShellDialog

Aktualizuje dane przechowywane w m_ofn zmienną dla bieżącego stanu okna dialogowego pliku.

Metody chronione

Nazwa

Opis

CFileDialog::OnButtonClicked

Wywoływane, gdy przycisk zostanie kliknięty.

CFileDialog::OnCheckButtonToggled

Wywoływane, gdy pole wyboru jest zaznaczone/zaznaczone.

CFileDialog::OnControlActivating

Wywoływane, gdy formant jest aktywny.

CFileDialog::OnFileNameChange

Obsługuje WM_NOTIFY CDN_SELCHANGE wiadomości.

CFileDialog::OnFileNameOK

Sprawdza poprawność nazwy pliku w oknie dialogowym.

CFileDialog::OnFolderChange

Obsługuje WM_NOTIFY CDN_FOLDERCHANGE wiadomości.

CFileDialog::OnInitDone

Obsługuje WM_NOTIFY CDN_INITDONE wiadomości.

CFileDialog::OnItemSelected

Wywoływane, gdy zaznaczono element kontenera.

CFileDialog::OnLBSelChangedNotify

Pozwala na wykonywanie akcji niestandardowych, po zmianie wyboru pliku.

CFileDialog::OnShareViolation

Uchwyty Podziel naruszenia.

CFileDialog::OnTypeChange

Obsługuje WM_NOTIFY CDN_TYPECHANGE wiadomości.

Publiczne danych członków

Nazwa

Opis

CFileDialog::m_ofn

Windows OPENFILENAME struktury.Zapewnia dostęp do pliku podstawowe okno dialogowe pole parametrów.

Uwagi

Typowych okien dialogowych pliku pozwalają wdrożyć wybór pliku oknach dialogowych, na przykład, Otwórz plik i Zapisać jako, w sposób zgodny z normami systemu Windows.

Można użyć CFileDialog jest za pomocą konstruktora, pod warunkiem, lub można czerpać własnej klasy pole dialogowe z CFileDialog i napisz Konstruktor do własnych potrzeb.W każdym przypadku, tych okien dialogowych będzie postępować jak standardowe okna dialogowe MFC, ponieważ pochodzą one z Klasa CCommonDialog.CFileDialogopiera się na pliku COMMDLG.Plik DLL, który jest zawarty w systemie Windows.

Wygląd i funkcjonalność CFileDialog z Windows Vista różnią się od wcześniejszych wersjach systemu Windows.Domyślnie CFileDialog automatycznie używa nowych Windows Vista styl bez zmiany kodu, jeśli program jest skompilowany i uruchom pod Windows Vista.Użycie bVistaStyle parametr w Konstruktorze ręcznie zastąpić ten automatycznej aktualizacji.Wyjątek do automatycznej aktualizacji jest niestandardowe okna dialogowe.Nie zostaną one przekonwertowane na nowy styl.Aby uzyskać więcej informacji na temat konstruktora, zobacz CFileDialog::CFileDialog.

[!UWAGA]

System kontroli ID różni się w Windows Vista z wcześniejszych wersji systemu Windows, korzystając z CFileDialog.Należy zaktualizować wszystkie odwołania do CFileDialog formantów w kodzie przed portu, projektu z wcześniejszej wersji systemu Windows.

Niektóre CFileDialog metody nie są obsługiwane w ramach Windows Vista.Sprawdź temat poszczególne metody, aby uzyskać informacje na temat czy metoda jest obsługiwana.Ponadto, następujące funkcje dziedziczonych nie są obsługiwane w Windows Vista:

Wiadomości systemu windows dla CFileDialog klasy w zależności od używanego systemu operacyjnego.Na przykład, Windows XP nie obsługuje CDialog::OnCancel i CDialog::OnOK dla CFileDialog klasy.Jednakże Windows Vista je obsługują.Aby uzyskać więcej informacji na temat różnych wiadomości, które są generowane i kolejność, w którym są odbierane, zobacz CFileDialog próbki: rejestrowanie kolejności zdarzeń.

Aby użyć CFileDialog obiektów, najpierw utwórz obiekt za pomocą CFileDialog Konstruktor.Po oknie dialogowym została skonstruowana, można ustawić lub zmienić żadnej wartości w CFileDialog::m_ofn strukturę, aby zainicjować wartości lub Państwa z formantów w oknie dialogowym.m_ofn Struktura jest typu OPENFILENAME.Aby uzyskać więcej informacji, zobacz NAZWA_OTWARTEGO_PLIKU struktury w Windows SDK.

Zadzwoń po należy zainicjować formantów w oknie dialogowym, CFileDialog::DoModal metoda, aby wyświetlić okno dialogowe pole tak, że użytkownik może wpisać ścieżkę i nazwę pliku.DoModalZwraca się, czy użytkownik kliknie OK (IDOK) lub przycisk Anuluj (IDCANCEL).Jeśli DoModal zwraca IDOK, można użyć jednej z CFileDialog funkcje publiczne, pobrać informacje wprowadzone przez użytkownika.

[!UWAGA]

Pod Windows Vista, wiele połączeń do IFileDialog::SetFileTypes powoduje błąd.Drugie wywołanie SetFileTypes dla dowolnego wystąpienia CFileDialog zwróci E_UNEXPECTED w Windows Vista.Niektóre CFileDialog metoda funkcji wywołania SetFileTypes.Na przykład, dwa wzywa do CFileDialog::DoModal dla tego samego wystąpienia CFileDialog generuje ASSERT.

CFileDialogzawiera kilka chronione elementy członkowskie, które pozwalają zrobić niestandardową obsługę udziału naruszenia, sprawdzanie nazwy pliku i powiadamianie o zmianach w polu listy.Te elementy chronione są funkcji wywołania zwrotnego, które większość aplikacji nie trzeba używać, ponieważ domyślna obsługa jest wykonywana automatycznie.Mapa wiadomość wpisy dla tych funkcji nie są wymagane, ponieważ są one standardowe funkcje wirtualnych.

Można użyć okna CommDlgExtendedError funkcji, aby ustalić, czy wystąpił błąd podczas inicjowania okna dialogowego i dowiedzieć się więcej o błędzie.

Zniszczenie CFileDialog obiektów jest obsługiwana automatycznie.Nie trzeba wywoływać CDialog::EndDialog.

Aby umożliwić użytkownikowi wybranie wielu plików, należy ustawić OFN_ALLOWMULTISELECT flagę przed wywołaniem DoModal.Musisz podać własne buforu nazwy pliku, aby pomieścić zwrócone listę wielu nazw plików.W tym poprzez zastąpienie m_ofn.lpstrFile z wskaźnik do buforu przydzielono, po konstruowania CFileDialog, ale przed wywołaniem DoModal.

Ponadto, należy ustawić m_ofn.nMaxFile za pomocą liczby znaków w buforze wskazywanej przez m_ofn.lpstrFile.Jeśli ustawisz maksymalną liczbę plików, które mają być wybrane do n, jest wymagany rozmiar buforu n * (_MAX_PATH + 1) + 1.Pierwszy element zwracane w buforze jest ścieżka do folderu, w którym pliki zostały wybrane.Dla Windows Vista-styl okien dialogowych, ciągi nazwę katalogu i pliku są zerową, z dodatkową znakiem null, po ostatnim nazwę pliku.Ten format umożliwia okna dialogowe stylu Eksploratora przywrócić długie nazwy plików zawierające spacje.Dla okien dialogowych w starym stylu ciągi nazwę katalogu i pliku są oddzielone spacjami, a funkcja używa krótkich nazw plików dla nazwy plików zawierające spacje.

Poniższy przykład ilustruje sposób użycia buforu do pobierania i Lista wielu nazw plików.

#define MAX_CFileDialog_FILE_COUNT 99
#define FILE_LIST_BUFFER_SIZE ((MAX_CFileDialog_FILE_COUNT * (MAX_PATH + 1)) + 1)

CString fileName;
wchar_t* p = fileName.GetBuffer( FILE_LIST_BUFFER_SIZE );
CFileDialog dlgFile(TRUE);
OPENFILENAME& ofn = dlgFile.GetOFN( );
ofn.Flags |= OFN_ALLOWMULTISELECT;
ofn.lpstrFile = p;
ofn.nMaxFile = FILE_LIST_BUFFER_SIZE;

dlgFile.DoModal();
fileName.ReleaseBuffer();

wchar_t* pBufEnd = p + FILE_LIST_BUFFER_SIZE - 2;
wchar_t* start = p;
while( ( p < pBufEnd ) && ( *p ) )
  p++;
if( p > start )
{
  _tprintf(_T("Path to folder where files were selected:  %s\r\n\r\n"), start );
  p++;

  int fileCount = 1;
  while( ( p < pBufEnd ) && ( *p ) )
  {
    start = p;
    while( ( p < pBufEnd ) && ( *p ) )
      p++;
    if( p > start )
      _tprintf(_T("%2d. %s\r\n"), fileCount, start );
    p++;
    fileCount++;
  }
}

Aby zmienić rozmiar buforu w odpowiedzi na zaznaczanie wielu nazw plików użytkownika, musi pochodzić z nową klasę CFileDialog i zastąpić CFileDialog::OnFileNameChange metoda.

Jeśli pochodzą z nową klasę CFileDialog, mapy wiadomości można użyć do obsługi żadnych wiadomości.Rozszerzenie domyślne obsługi wiadomości, czerpią klasy z CFileDialog, dodać mapę wiadomość do nowej klasy i zapewnić funkcji elementów członkowskich dla nowych wiadomości.Nie masz funkcji hak do dostosowywania okna dialogowego.

Aby dostosować okno dialogowe, czerpią klasy z CFileDialog, zapewniają szablonu pole niestandardowe okna dialogowe i dodać mapę wiadomość do przetwarzania wiadomości powiadomienie z rozszerzonej kontroli.Przekazywać komunikaty nieprzetworzonych do klasy podstawowej.Nie masz dostosowywanie funkcji haka.

Kiedy używasz Windows Vista styl CFileDialog, nie można użyć w wiadomości, mapami i szablony okien dialogowych.Zamiast tego należy użyć interfejsów COM dla podobną funkcjonalność.

Aby uzyskać więcej informacji na temat używania CFileDialog, zobacz Klasy wspólnych okien dialogowych.

Hierarchia dziedziczenia

CObject

Klasy

CWnd

CDialog

CCommonDialog

CFileDialog

Wymagania

**Nagłówek:**afxdlgs.h

Zobacz też

Informacje

Klasa CCommonDialog

Diagram hierarchii