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 |
---|---|
Konstrukcje CFileDialog obiektu. |
Metody publiczne
Nazwa |
Opis |
---|---|
Dodaje przycisk wyboru do okna dialogowego. |
|
Dodaje pole kombi do okna dialogowego. |
|
Dodaje element do formantu kontenera, w oknie dialogowym. |
|
Dodaje pole edycji w oknie dialogowym. |
|
Dodaje menu do okna dialogowego. |
|
Przeciążone.Dodaje folder do listy miejsc dostępnych dla użytkownika do otwarcia lub zapisania elementów. |
|
Dodaje przycisk do okna dialogowego. |
|
Dodaje grupę przycisków (znany również jako przycisk radiowy) opcji okna dialogowego. |
|
Dodaje separator do okna dialogowego. |
|
Dodaje treści tekstu do okna dialogowego. |
|
Aktualizacje stanu CFileDialog aby dopasować parametry i flagi przechowywane w m_ofn zmienną. |
|
Wyświetla okno dialogowe i umożliwia użytkownikowi zaznaczanie jest niepotrzebne. |
|
Umożliwia listy rozwijanej na Otwórz lub zapisać przycisk w oknie dialogowym. |
|
Zatrzymuje dodanie elementów wizualnych grupy w oknie dialogowym. |
|
Pobiera bieżący stan przycisku wyboru (pole wyboru), w oknie dialogowym. |
|
Pobiera bieżący stan elementu w formancie kontenera, w oknie dialogowym. |
|
Pobiera bieżący widoczność i włączone Państwa danego formantu. |
|
Pobiera bieżący tekst w polu edycyjnym. |
|
Zwraca rozszerzenie wybranego pliku. |
|
Zwraca nazwę wybranego pliku. |
|
Zwraca tytuł wybranego pliku. |
|
Pobiera ścieżkę aktualnie otwartego folderu lub katalogu dla stylu Eksploratora Otwórz lub Zapisać jako wspólne okno dialogowe. |
|
Pobiera wewnętrznego obiektu COM zamówienie CFileDialog obiektu. |
|
Pobiera wewnętrznego obiektu COM dla CFileDialog który jest używany jako Otwórz okno dialogowe pliku. |
|
Pobiera wewnętrznego obiektu COM dla CFileDialog który jest używany jako zapisać okno dialogowe pliku. |
|
Zwraca pełną ścieżkę dalej wybranego pliku. |
|
Pobiera OPENFILENAME struktury CFileDialog obiektu. |
|
Zwraca pełną ścieżkę wybranego pliku. |
|
Zwraca stan wybranego pliku tylko do odczytu. |
|
Pobiera wybór, że w oknie dialogowym użytkownika. |
|
Pobiera wyborów przez użytkownika w oknie dialogowym, umożliwiający wybór wielokrotny. |
|
Pobiera określonego towaru z określonym kontener formantów w oknie dialogowym. |
|
Zwraca pozycję pierwszego elementu listy nazw plików. |
|
Ukrywa określony formant w stylu Eksploratora Otwórz lub Zapisać jako wspólne okno dialogowe. |
|
Określa, czy bieżące okno w trybie wyboru folderu. |
|
Miejsca kontroli, w oknie dialogowym tak, że wyróżnia się porównaniu do innych formantów dodanych. |
|
Usuwa element z formantu kontenera, w oknie dialogowym. |
|
Ustawia bieżący stan przycisku wyboru (pole wyboru), w oknie dialogowym. |
|
Ustawia bieżący stan elementu w formancie kontenera, w oknie dialogowym. |
|
Ustawia tekst elementu sterowania.Na przykład tekst, który towarzyszy przycisk radiowy lub element menu. |
|
Ustawia tekst skojarzony z formantem, takich jak tekst przycisku lub etykiety pola edycji. |
|
Ustawia bieżący widoczność i włączone Państwa danego formantu. |
|
Ustawia tekst dla kontroli określony w stylu Eksploratora Otwórz lub Zapisać jako wspólne okno dialogowe. |
|
Ustawia domyślne rozszerzenie nazwy pliku dla stylu Eksploratora Otwórz lub Zapisać jako wspólne okno dialogowe. |
|
Ustawia bieżący tekst w polu edycyjnym. |
|
Zapewnia magazynu właściwości, która określa wartości domyślne, stosowaną dla elementu, które są zapisywane. |
|
Ustawia stanu zapasów w grupę przycisków opcji lub pola kombi w oknie dialogowym. |
|
Ustawia szablonu pole dialogowe dla CFileDialog obiektu. |
|
Deklaruje visual grupy w oknie dialogowym.Kolejne wywołania dowolnej metody "Dodaj" dodać te elementy do tej grupy. |
|
Aktualizuje dane przechowywane w m_ofn zmienną dla bieżącego stanu okna dialogowego pliku. |
Metody chronione
Nazwa |
Opis |
---|---|
Wywoływane, gdy przycisk zostanie kliknięty. |
|
Wywoływane, gdy pole wyboru jest zaznaczone/zaznaczone. |
|
Wywoływane, gdy formant jest aktywny. |
|
Obsługuje WM_NOTIFY CDN_SELCHANGE wiadomości. |
|
Sprawdza poprawność nazwy pliku w oknie dialogowym. |
|
Obsługuje WM_NOTIFY CDN_FOLDERCHANGE wiadomości. |
|
Obsługuje WM_NOTIFY CDN_INITDONE wiadomości. |
|
Wywoływane, gdy zaznaczono element kontenera. |
|
Pozwala na wykonywanie akcji niestandardowych, po zmianie wyboru pliku. |
|
Uchwyty Podziel naruszenia. |
|
Obsługuje WM_NOTIFY CDN_TYPECHANGE wiadomości. |
Publiczne danych członków
Nazwa |
Opis |
---|---|
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
CFileDialog
Wymagania
**Nagłówek:**afxdlgs.h