CFileDialog::CFileDialog

Wywołanie tej funkcji do konstruowania standardowe okno dialogowe pliku systemu Windows.

explicit CFileDialog(
   BOOL bOpenFileDialog,
   LPCTSTR lpszDefExt = NULL,
   LPCTSTR lpszFileName = NULL,
   DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
   LPCTSTR lpszFilter = NULL,
   CWnd* pParentWnd = NULL,
   DWORD dwSize = 0,
   BOOL bVistaStyle = TRUE
);

Parametry

  • [in] bOpenFileDialog
    Parametr, który określa, jakiego rodzaju okno dialogowe, aby utworzyć.Ustaw ją jako TRUE do konstruowania Otwórz plik okno dialogowe.Ustaw ją jako FALSE do konstruowania Zapisz plik jako okno dialogowe.

  • [in] lpszDefExt
    Domyślne rozszerzenie nazwy pliku.Jeżeli użytkownik nie ma znanego rozszerzenia (takie, które ma skojarzenia na komputerze użytkownika) w polu Nazwa pliku, rozszerzenie określone przez lpszDefExt jest automatycznie dołączane do nazwy pliku.Jeśli parametr ten jest NULL, jest dołączany bez rozszerzenia.

  • [in] lpszFileName
    Nazwa pierwszy plik, który pojawia się w polu Nazwa pliku.Jeśli NULL, pojawia się nie początkowa nazwa pliku.

  • [in] dwFlags
    Połączenie jednego lub więcej flag, które służy do dostosowywania okna dialogowego.Aby uzyskać opis tych flag, zobacz NAZWA_OTWARTEGO_PLIKU struktury w Windows SDK.Jeśli modyfikujesz m_ofn.Flags struktury Państwa, należy użyć operatora logiczną lub zmiany pozostawić domyślne zachowanie bez jej nadpisywania.

  • [in] lpszFilter
    Szereg pary ciągów, filtrami można zastosować do pliku.Jeśli określisz filtry plików, tylko te pliki, które spełniają kryteria filtrowania pojawią się na liście plików.Aby uzyskać więcej informacji na temat pracy z filtrów plików w sekcji Uwagi.

  • [in] pParentWnd
    Wskaźnik do okna nadrzędnego lub właściciela pliku okno dialogowe.

  • [in] dwSize
    Rozmiar OPENFILENAME struktury.Ta wartość zależy od wersji systemu operacyjnego.MFC pozwala określić odpowiedni rodzaj okno dialogowe, aby utworzyć ten parametr (na przykład, nowy Windows 2000 okna dialogowe zamiast okna dialogowe NT4).Domyślny rozmiar 0 oznacza, że kod MFC określi rozmiar pola poprawne okno obsłudze, zależnie od wersji systemu operacyjnego, na którym program jest uruchamiany.

  • [in] bVistaStyle
    Uwaga ten parametr jest dostępny w Visual Studio 2008 i nowszych i będzie powodować okno dialogowe Nowy styl, aby być używane tylko wtedy, gdy program działa w Windows Vista lub nowszym.

    Parametr, który określa styl okna dialogowego pliku.Ustaw ją jako TRUE obsłudze nowych okien dialogowych pliku stylu Vista.W przeciwnym razie zostanie użyty stary styl okien dialogowych.Zobacz sekcję Spostrzeżenia, aby uzyskać więcej informacji uruchomiony w systemie Vista.

Uwagi

Albo Otwórz plik lub Zapisz plik jako składa się okno dialogowe, w zależności od wartości bOpenFileDialog.

Określanie rozszerzenie domyślne przy użyciu lpszDefExt mogą nie dawać zachowanie, że można oczekiwać, ponieważ rzadko kiedy jest przewidywalne, jakie rozszerzenia mają skojarzenia plików na komputerze użytkownika.Aby uzyskać większą kontrolę nad dołączanie rozszerzenie domyślne, można czerpać własnej klasy z CFileDialogi zastąpić CFileDialog::OnFileNameOK metodę należy zastosować handling rozszerzenie.

Aby umożliwić użytkownikowi wybranie wielu plików, należy ustawić OFN_ALLOWMULTISELECT flagę przed wywołaniem DoModal.Musisz podać swój własny bufor nazwy pliku do przechowywania zwrócona lista wielu nazw plików.W tym celu należy wymiana m_ofn.lpstrFile o wskaźnik do bufora zostanie zaalokowany, po można skonstruować CFileDialog, ale zanim zadzwonisz do DoModal.Ponadto, należy ustawić m_ofn.nMaxFile z liczbą znaków w buforze wskazywanej przez m_ofn.lpstrFile.Jeśli ustawisz maksymalną liczbę plików, które mają być wybrane do n, rozmiar buforu niezbędne jest n*(_MAX_PATH + 1) + 1.Na przykład:

#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 umożliwić użytkownikowi zmienianie rozmiaru jest okno dialogowe stylu Eksploratora przy użyciu myszy lub klawiatury, należy ustawić OFN_ENABLESIZING flagi.Ustawienie tej flagi jest konieczne, jeżeli użytkownik wprowadzi procedura haka lub szablonu niestandardowego.Flaga działa tylko w przypadku stylu Eksploratora okno dialogowe; Nie można zmienić rozmiaru okna dialogowe w starym stylu.

lpszFilter Parametr jest używany do określenia typu nazwa pliku, plik musi mieć mają być wyświetlane na liście plików.Pierwszy ciąg w parze ciąg zawiera opis filtru; drugi ciąg wskazuje rozszerzenie nazwy pliku, aby użyć.Wiele rozszerzeń można określić za pomocą średnika (znak ";") jako ogranicznik.Ciąg, który kończy się na dwa ' |' znaków, a następnie NULL znaków.Można również użyć CString obiektu dla tego parametru.

Na przykład Microsoft Excel pozwala użytkownikom otwierać pliki, które mają rozszerzenia xlc (wykres) lub xls (arkusz), m.in.Filtr dla programu Excel może być zapisany jako:

static TCHAR BASED_CODE szFilter[] = _T("Chart Files (*.xlc)|*.xlc|")
   _T("Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|")
   _T("*.xlc; *.xls|All Files (*.*)|*.*||");

Jeśli zamierzasz używać ten ciąg, aby bezpośrednio jednak zaktualizować OPENFILENAME struktury, powinny będzie ograniczone swoimi ciągi znakiem null, '\0', a nie pionowe paski ('| ').

bVistaStyle Parametr ma zastosowanie tylko wtedy, gdy jest uruchomiona w ramach Windows Vista.W starszych wersjach systemu Windows ten parametr jest ignorowany.Jeśli bVistaStyle jest ustawiona na TRUE, podczas kompilacji programu Visual Studio 2008 lub nowszej, nowy styl Vista Okno dialogowe pliku będzie używany.W przeciwnym razie wcześniejszy styl MFC Okno dialogowe pliku będzie używany.Aby uzyskać więcej informacji, zobacz Klasa CFileDialog.

Okno Szablony nie są obsługiwane w oknach dialogowych, na podstawiebVistaStyle

Przykład

Zobacz przykład dla CFileDialog::DoModal.

Wymagania

Header:afxdlgs.h

Zobacz też

Informacje

Klasa CFileDialog

Diagram hierarchii

CFileDialog::DoModal

GetOpenFileName

GetSaveFileName

OPENFILENAME