Třída CFileDialog
Zapouzdřuje běžné dialogovém okně, které se používá pro soubor otevřít nebo uložit operace.
class CFileDialog : public CCommonDialog
Členy
Veřejné konstruktory
Název |
Description |
---|---|
Konstrukce CFileDialog objektu. |
Veřejné metody
Název |
Description |
---|---|
Přidá zaškrtávací tlačítko dialogové okno. |
|
Přidá dialogové okno se seznamem. |
|
Přidá položku do kontejnerového ovládacího prvku v dialogovém okně. |
|
Přidá textového pole dialogového okna. |
|
Dialogové okno Přidat nabídku. |
|
Přetíženo.Přidá že složku do seznamu míst k dispozici pro uživatele k otevření nebo uložení položky. |
|
Přidá tlačítko dialogové okno. |
|
Přidá skupiny přepínačů (označované také jako přepínač) dialogové okno. |
|
Přidá do dialogového okna oddělovač. |
|
Přidá textový obsah do dialogového okna. |
|
Aktualizace stavu CFileDialog odpovídající parametry a příznaky, které jsou uloženy v m_ofn členské proměnné. |
|
Zobrazí dialogové okno a umožňuje uživateli výběr. |
|
Umožňuje v rozevíracím seznamu Open nebo Uložit tlačítko v dialogovém okně. |
|
Zastaví prvků visual skupiny v dialogovém okně. |
|
Získá aktuální stav zaškrtávací tlačítko (zaškrtávací políčko) v dialogovém okně. |
|
Získá aktuální stav položky v ovládacím prvku kontejneru nalezen v dialogovém okně. |
|
Získá aktuální viditelnost a stavů daný ovládací prvek. |
|
Získá aktuální text v ovládacím prvku pole upravit. |
|
Vrátí rozšíření vybraného souboru. |
|
Vrátí název souboru vybraného souboru. |
|
Vrátí název vybraného souboru. |
|
Načte cestu aktuálně otevřené složky nebo adresáře stylu Průzkumník otevřete nebo Uložit jako běžné dialogové okno. |
|
Načte vnitřní objekt modelu COM pro přizpůsobené CFileDialog objektu. |
|
Načte vnitřní objekt modelu COM pro CFileDialog používaný jako Otevřít dialogové okno souboru. |
|
Obnoví vnitřní objekt modelu COM pro CFileDialog používaný jako Uložit dialogové okno souboru. |
|
Vrací úplnou cestu k dalším vybraného souboru. |
|
Načte OPENFILENAME struktury CFileDialog objektu. |
|
Vrací úplnou cestu k vybranému souboru. |
|
Vrátí stav vybraného souboru jen pro čtení. |
|
Získá voleb, které uživatel v dialogovém okně. |
|
V dialogovém okně, které umožňuje výběr více získá uživatelské možnosti. |
|
Získá určité položky ze zadaného kontejneru ovládacích prvků v dialogovém okně. |
|
Vrátí pozici první prvek seznamu název souboru. |
|
Skryje ovládací prvek zadaný ve stylu Průzkumníka Open nebo Uložit jako běžné dialogové okno. |
|
Určuje, zda aktuální dialogové okno v režimu pro výběr složky. |
|
Míst ovládací prvek v dialogovém okně tak, aby vystupoval porovnání s jinými přidané ovládací prvky. |
|
Odebere položky z ovládacího prvku kontejneru v dialogovém okně. |
|
Nastaví aktuální stav zaškrtávací tlačítko (zaškrtávací políčko) v dialogovém okně. |
|
Nastaví aktuální stav položky v ovládacím prvku kontejneru nalezen v dialogovém okně. |
|
Nastaví text položky ovládacího prvku.Například text, který doprovází, přepínací tlačítko nebo položky nabídky. |
|
Nastaví text přidružený ovládací prvek jako text tlačítka nebo popisek pole upravit. |
|
Nastaví aktuální viditelnost a stavů daný ovládací prvek. |
|
Nastaví text pro ovládací prvek zadaný ve stylu Průzkumníka Open nebo Uložit jako běžné dialogové okno. |
|
Nastaví výchozí přípona názvu souboru pro styl Průzkumník Open nebo Uložit jako běžné dialogové okno. |
|
Nastaví aktuální text v ovládacím prvku pole upravit. |
|
Poskytuje úložiště vlastností, která definuje výchozí hodnoty pro položku uložit. |
|
Nastaví vybraný stav určité položky skupiny přepínačů nebo seznamem nalezena v dialogovém okně. |
|
Dialogové okno šablony pole pro nastaví CFileDialog objektu. |
|
Deklaruje vizuální skupiny v dialogovém okně.Následné volání jakékoli metody "Přidat" do této skupiny přidat tyto prvky. |
|
Aktualizuje data uložená v m_ofn odpovídal aktuálnímu stavu v dialogovém okně soubor členské proměnné. |
Chráněné metody
Název |
Description |
---|---|
Volána, když je stisknuto tlačítko. |
|
Volána, když je kontrolována/nezaškrtnuté políčko. |
|
Volána, když ovládací prvek je právě aktivní. |
|
Zpracovává WM_NOTIFY CDN_SELCHANGE zpráva. |
|
Ověří zadané v dialogovém okně název souboru. |
|
Zpracovává WM_NOTIFY CDN_FOLDERCHANGE zpráva. |
|
Zpracovává WM_NOTIFY CDN_INITDONE zpráva. |
|
Volána, když je vybrána položka kontejneru. |
|
Umožňuje provést vlastní výběr souboru změní. |
|
Úchyty sdílení porušení. |
|
Zpracovává WM_NOTIFY CDN_TYPECHANGE zpráva. |
Veřejné datové členy.
Název |
Description |
---|---|
Windows OPENFILENAME struktury.Poskytuje přístup k základní soubor dialogové okno pole parametry. |
Poznámky
Běžných dialogových umožňují provádět výběr souboru dialogových oken, například Otevřít soubor a Uložit jako, způsobem, který je v souladu s normami pro Windows.
Můžete použít CFileDialog je s poskytnuty konstruktoru nebo můžete odvodit vlastní třídy dialogového okna z CFileDialog a zápis konstruktoru tak, aby vyhovovala vašim potřebám.V obou případech těchto dialogových oknech, bude se chovat jako standardní dialogová okna knihovny MFC protože jsou odvozeny z Třída CCommonDialog.CFileDialogvyužívá COMMDLG.Soubor knihovny DLL, která je součástí systému Windows.
Vzhled a funkce CFileDialog s Windows Vista se liší od dřívějších verzích systému Windows.Výchozí CFileDialog automaticky používá nová Windows Vista styl bez změny kódu, pokud zkompilovaný program a spustit pod Windows Vista.Použití bVistaStyle parametr konstruktoru ručně přepsat automatickou aktualizaci.Výjimkou automatické aktualizace je vlastní dialogová okna.Nesmí být převedeny na nový styl.Další informace o konstruktor viz CFileDialog::CFileDialog.
[!POZNÁMKA]
ID systému řízení se liší v Windows Vista z dřívějších verzí systému Windows při použití CFileDialog.Je nutné aktualizovat všechny odkazy na CFileDialog prvky v kódu dříve, než je převést projekt z dřívější verze systému Windows.
Některé CFileDialog metody nejsou podporovány v Windows Vista.Zkontrolujte jednotlivé metody téma informace o tom, zda je metoda podporovány.Kromě toho nejsou podporovány následující funkce zděděné pod Windows Vista:
Zprávy systému windows CFileDialog lišit v závislosti na operačním systému pomocí třídy.Například systém Windows XP nepodporuje CDialog::OnCancel a CDialog::OnOK u CFileDialog třídy.Však Windows Vista podpory.Další informace o různých zpráv, které jsou generovány a pořadí jejich přijetí naleznete CFileDialog vzorku: pořadí událostí protokolování.
Použití CFileDialog objekt, nejprve vytvořit objekt pomocí CFileDialog konstruktor.Poté, co bylo vyrobeno dialogovém okně, můžete nastavit nebo změnit všechny hodnoty v CFileDialog::m_ofn struktury inicializace hodnoty nebo státy prvkům dialogového okna.m_ofn Struktury je typu OPENFILENAME.Další informace naleznete NÁZEV_OTEVŘENÉHO_SOUBORU struktury v Windows SDK.
Po můžete inicializovat ovládací prvky dialogového okna, volat CFileDialog::DoModal metoda zobrazit dialogové okno pole, takže uživatel může zadat cestu a název.DoModalVrátí se, zda uživatel klepl tlačítko Storno (IDCANCEL) nebo OK (IDOK).Pokud DoModal vrátí IDOK, můžete použít jednu z CFileDialog do veřejné členské funkce načíst informace uživatele.
[!POZNÁMKA]
Podle Windows Vista, více volání IFileDialog::SetFileTypes způsobí chybu.Druhé volání SetFileTypes pro všechny instance CFileDialog vrátí E_UNEXPECTED v Windows Vista.Některé CFileDialog metoda funkce volání SetFileTypes.Například dvě volá CFileDialog::DoModal pro stejnou instanci CFileDialog generuje ASSERT.
CFileDialogzahrnuje několik chráněné členy, které umožňují provést vlastní zpracování narušení sdílení, ověřování názvů souborů a oznámení o změně pole seznamu.Tyto chráněné členy jsou funkce zpětného volání, které většina aplikací není nutné používat, protože výchozí zpracování je provedeno automaticky.Mapu zpráv položky pro tyto funkce nejsou požadovány, protože jsou standardní virtuální funkce.
Pomocí systému Windows CommDlgExtendedError funkce zjistit, zda došlo k chybě během inicializace dialogového okna a další informace o chybě.
Zničení CFileDialog objektů je automaticky zpracována.Není nutné volat CDialog::EndDialog.
Umožňují uživateli vybrat více souborů nastavena OFN_ALLOWMULTISELECT příznak před voláním DoModal.Musíte zadat vlastní vyrovnávací paměť názvu souboru pojmout vrácené seznam více názvů souborů.To lze provést nahrazením m_ofn.lpstrFile ukazatel na vyrovnávací paměť můžete mít přidělena, po sestavení CFileDialog, ale před voláním DoModal.
Navíc musíte nastavit m_ofn.nMaxFile pomocí počet znaků ve vyrovnávací paměti odkazuje m_ofn.lpstrFile.Pokud nastavíte maximální počet souborů k n, je velikost vyrovnávací paměti požadované n * (_MAX_PATH + 1) + 1.První položky vrácené ve vyrovnávací paměti je cesta ke složce, kde byly vybrané soubory.Pro Windows Vista-styl dialogových oknech řetězce názvu adresáře a souboru jsou zakončený, navíc znakem null po poslední název souboru.Tento formát umožňuje dialogová okna Průzkumník stylů vrátit dlouhé názvy souborů, které obsahují mezery.Starý styl dialogových řetězce názvu adresáře a souboru jsou odděleny mezerami a funkce používá krátké názvy souborů pro názvy s mezerami.
Následující příklad demonstruje použití vyrovnávací paměti pro načtení a seznam více názvů souborů.
#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++;
}
}
Změna velikosti vyrovnávací paměti jako odpověď uživateli vybrat více názvů souborů, musí odvodit novou třídu z CFileDialog a přepsat CFileDialog::OnFileNameChange metoda.
Je-li odvodit novou třídu z CFileDialog, můžete použít mapu zpráv zpracovat všechny zprávy.Rozšířit zpracování zprávy výchozí, odvodit třídu z CFileDialog, přidání nové třídy zprávu mapy a poskytují členské funkce pro nové zprávy.Není třeba poskytnout háčkem funkci přizpůsobení dialogového okna.
Přizpůsobení dialogového okna, odvodit třídu z CFileDialog, poskytují vlastní dialogové okno šablony pole a přidat mapu zpráv pro zpracování zpráv oznámení z rozšířené ovládací prvky.Všechny nezpracované zprávy předáte základní třídy.Není třeba přizpůsobit funkce zavěšení.
Při použití Windows Vista styl CFileDialog, nelze použít zprávu mapy a dialogové okno šablony pole.Místo toho musíte použít rozhraní modelu COM pro podobné funkce.
Další informace o použití CFileDialog, viz Společné třídy dialogových oken.
Hierarchii dědičnosti
CFileDialog
Požadavky
**Záhlaví:**afxdlgs.h