CFileDialog::CFileDialog
Volejte tuto funkci k vytvoření standardní dialogové okno systému Windows soubor.
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
[v] bOpenFileDialog
Parametr, který určuje, jaký typ dialogové okno vytvořit.Nastavte ji na TRUE konstrukce Otevřít soubor dialogové okno.Nastavte ji na FALSE konstrukce Uložit jako dialogové okno.[v] lpszDefExt
Výchozí přípona názvu souboru.Pokud uživatel v poli Název souboru neobsahuje známou příponu, (jeden, který má spojení na počítači uživatele), rozšíření určené lpszDefExt je automaticky přidána k názvu souboru.Je-li tento parametr je NULL, bez přípony je připojen.[v] lpszFileName
Je původní název souboru zobrazený v poli Název souboru.Pokud NULL, se zobrazí bez původní název souboru.[v] dwFlags
Kombinace jeden nebo více příznaků, které můžete použít k přizpůsobení dialogového okna.Popis těchto příznaků naleznete NÁZEV_OTEVŘENÉHO_SOUBORU struktury v Windows SDK.Pokud změníte m_ofn.Flags struktury členské, použijte operátor bitový operátor OR změny zachovat výchozí chování.[v] lpszFilter
Série dvojice řetězců, které určují filtry lze použít v souboru.Pokud chcete zadat filtry souborů, pouze soubory, které odpovídají kritériím filtru se zobrazí v seznamu souborů.Další informace o způsobu práce s filtry souborů v části poznámky.[v] pParentWnd
Ukazatel na rodiče nebo vlastník okno dialogové okno souboru.[v] dwSize
Velikost OPENFILENAME struktury.Tato hodnota závisí na verzi operačního systému.Knihovny MFC umožňuje určit druh dialogové okno vytvořit tento parametr (například nové Windows 2000 dialogových oknech NT4 dialogových oknech).Výchozí hodnota 0 znamená, že kód knihovny MFC určí správné rozměry dialogového okna použít založené na verzi operačního systému, ve kterém je spuštěn program.[v] bVistaStyle
Poznámka: tento parametr je k dispozici v aplikaci Visual Studio 2008 a novější a budou způsobit dialogové okno Nový styl, chcete-li použít pouze v případě, že jsou spuštěny Windows Vista nebo vyšší.Parametr, který určuje styl dialogového okna souboru.Nastavte ji na TRUE Chcete-li použít nové dialogy Vista styl.V opačném případě se použije starý styl dialogových oknech.V části poznámky pro další informace systém Vista.
Poznámky
Buď Otevřít soubor nebo Uložit jako dialogové okno je vyrobeno v závislosti na hodnotě bOpenFileDialog.
Určení výchozí rozšíření pomocí lpszDefExt nemusí poskytovat chování, které jste očekávali, protože je zřídka předvídatelné, které přípony mají přidružení souborů v počítači uživatele.Pokud potřebujete větší kontrolu nad připojením výchozí přípona, můžete odvodit vlastní třídu z CFileDialoga přepsat CFileDialog::OnFileNameOK metodu k provedení vlastního zpracování rozšíření.
Chcete-li povolit uživateli vybrat více souborů, nastavit OFN_ALLOWMULTISELECT příznak před voláním DoModal.Je třeba zadat vlastní vyrovnávací paměť názvu souboru k uložení seznamu vrácené více názvů souborů.Provést nahrazením m_ofn.lpstrFile s ukazatelem na vyrovnávací paměti můžete mít přidělena, po sestavení CFileDialog, ale před zavoláním funkce DoModal.Kromě toho je nutné nastavit m_ofn.nMaxFile s počtem znaků ve vyrovnávací paměti, na kterou odkazuje m_ofn.lpstrFile.Je-li nastavit maximální počet souborů, které mají být vybrány k n, nezbytné vyrovnávací paměť je n*(_MAX_PATH + 1) + 1.Příklad:
#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++;
}
}
Umožňuje uživateli změnit velikost dialogové okno Průzkumník stylů pomocí myši nebo klávesnice nastavena OFN_ENABLESIZING příznak.Nastavením tohoto příznaku je nutné pouze v případě, že poskytnete procedura zavěšení nebo vlastní šablony.Příznak je funkční pouze u dialogové okno Průzkumník stylů; nelze změnit velikost starobylé dialogových oknech.
lpszFilter Parametr slouží k určení typu souboru název souboru musí mít zobrazený v seznamu souborů.Popisuje první řetězec dvojice řetězec filtru; druhý řetězec Určuje příponu názvu souboru pro použití.Lze zadat více přípon pomocí středníku (znak ';') jako oddělovač.Řetězec končí dva ' |' znaků, následovaných NULL znak.Můžete také použít CString objekt pro tento parametr.
Například Microsoft Excel umožňuje uživatelům otevírat soubory, jejichž rozšíření XLC (graf) nebo XLS (sešit), mimo jiné.Filtr pro aplikaci Excel lze zapsat 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 (*.*)|*.*||");
Však pokud máte v úmyslu použít tento řetězec přímo aktualizovat OPENFILENAME struktury, by vymezení vašeho řetězce s prázdný znak '\0' místo svislé pruhy ("|").
bVistaStyle Parametr je použitelný pouze v případě, že je spuštěn pod Windows Vista.Ve starších verzích systému Windows je tento parametr ignorován.Pokud bVistaStyle je nastavena na TRUE, při kompilaci programu s Visual Studio 2008 nebo novější, nový styl Vista Dialogové okno souboru bude použit.V opačném případě se předchozí knihovny MFC stylu Dialogové okno souboru bude použit.Další informace naleznete v tématu Třída CFileDialog.
Dialogové okno šablony nejsou podporovány v dialogových oknech, na základěbVistaStyle
Příklad
Viz příklad pro CFileDialog::DoModal.
Požadavky
Header:afxdlgs.h