Sdílet prostřednictvím


CFileDialog – třída

Zapouzdřuje společné dialogové okno, které se používá pro operace otevření souboru nebo ukládání souborů.

Syntaxe

class CFileDialog : public CCommonDialog

Členové

Veřejné konstruktory

Název Popis
CFileDialog::CFileDialog CFileDialog Vytvoří objekt.

Veřejné metody

Název Popis
CFileDialog::AddCheckButton Přidá do dialogového okna tlačítko zaškrtnutí.
CFileDialog::AddComboBox Přidá do dialogového okna pole se seznamem.
CFileDialog::AddControlItem Přidá položku do ovládacího prvku kontejneru v dialogovém okně.
CFileDialog::AddEditBox Přidá do dialogového okna textové pole.
CFileDialog::AddMenu Přidá do dialogového okna nabídku.
CFileDialog::AddPlace Přetíženo. Přidá složku do seznamu míst, která mají uživatel k dispozici k otevření nebo uložení položek.
CFileDialog::AddPushButton Přidá do dialogového okna tlačítko.
CFileDialog::AddRadioButtonList Přidá do dialogového okna skupinu přepínačů (označované také jako přepínač).
CFileDialog::AddSeparator Přidá do dialogového okna oddělovač.
CFileDialog::AddText Přidá do dialogového okna textový obsah.
CFileDialog::ApplyOFNToShellDialog Aktualizuje stav CFileDialog tak, aby odpovídal parametrům a příznakům uloženým m_ofn v členské proměnné.
CFileDialog::D oModal Zobrazí dialogové okno a povolí uživateli výběr.
CFileDialog::EnableOpenDropDown Povolí rozevírací seznam na tlačítku Otevřít nebo Uložit v dialogovém okně.
CFileDialog::EndVisualGroup Zastaví přidání prvků do skupiny vizuálů v dialogovém okně.
CFileDialog::GetCheckButtonState Získá aktuální stav zaškrtávacího tlačítka (zaškrtávací políčko) v dialogovém okně.
CFileDialog::GetControlItemState Získá aktuální stav položky v ovládacím prvku kontejneru nalezeného v dialogovém okně.
CFileDialog::GetControlState Získá aktuální viditelnost a povolené stavy daného ovládacího prvku.
CFileDialog::GetEditBoxText Získá aktuální text v ovládacím prvku textového pole.
CFileDialog::GetFileExt Vrátí příponu vybraného souboru.
CFileDialog::GetFileName Vrátí název souboru vybraného souboru.
CFileDialog::GetFileTitle Vrátí název vybraného souboru.
CFileDialog::GetFolderPath Načte cestu aktuálně otevřené složky nebo adresáře pro běžné dialogové okno Otevřít nebo Uložit jako ve stylu Průzkumníka.
CFileDialog::GetIFileDialogCustomize Načte interní objekt MODELU COM pro přizpůsobený CFileDialog objekt.
CFileDialog::GetIFileOpenDialog Načte interní objekt MODELU COM pro CFileDialog objekt, který se používá jako dialogové okno Otevřít soubor.
CFileDialog::GetIFileSaveDialog Načte interní objekt MODELU COM pro CFileDialog objekt, který se používá jako dialogové okno Uložit soubor.
CFileDialog::GetNextPathName Vrátí úplnou cestu k dalšímu vybranému souboru.
CFileDialog::GetOFN OPENFILENAME Načte strukturu objektuCFileDialog.
CFileDialog::GetPathName Vrátí úplnou cestu vybraného souboru.
CFileDialog::GetReadOnlyPref Vrátí stav vybraného souboru jen pro čtení.
CFileDialog::GetResult Získá volbu, kterou uživatel provedl v dialogovém okně.
CFileDialog::GetResults Získá možnosti uživatele v dialogovém okně, které umožňuje vícenásobný výběr.
CFileDialog::GetSelectedControlItem Získá konkrétní položku ze zadaných ovládacích prvků kontejneru v dialogovém okně.
CFileDialog::GetStartPosition Vrátí pozici prvního prvku seznamu názvů souborů.
CFileDialog::HideControl Skryje zadaný ovládací prvek v dialogovém okně Otevřít nebo Uložit jako společné.
CFileDialog::IsPickFoldersMode Určuje, zda aktuální dialogové okno v režimu výběru složky.
CFileDialog::MakeProminent Umístí ovládací prvek do dialogového okna tak, aby vynikl ve srovnání s ostatními přidaným ovládacími prvky.
CFileDialog::RemoveControlItem Odebere položku z ovládacího prvku kontejneru v dialogovém okně.
CFileDialog::SetCheckButtonState Nastaví aktuální stav zaškrtávacího tlačítka (zaškrtávací políčko) v dialogovém okně.
CFileDialog::SetControlItemState Nastaví aktuální stav položky v ovládacím prvku kontejneru nalezeném v dialogovém okně.
CFileDialog::SetControlItemText Nastaví text položky ovládacího prvku. Například text, který doprovází přepínač nebo položku v nabídce.
CFileDialog::SetControlLabel Nastaví text přidružený k ovládacímu prvku, například text tlačítka nebo popisek textového pole.
CFileDialog::SetControlState Nastaví aktuální viditelnost a povolené stavy daného ovládacího prvku.
CFileDialog::SetControlText Nastaví text pro zadaný ovládací prvek v dialogovém okně Otevřít nebo Uložit jako společné.
CFileDialog::SetDefExt Nastaví výchozí příponu názvu souboru pro dialogové okno Otevřít ve stylu Průzkumníka nebo Uložit jako společné.
CFileDialog::SetEditBoxText Nastaví aktuální text v ovládacím prvku textového pole.
CFileDialog::SetProperties Poskytuje úložiště vlastností, které definuje výchozí hodnoty, které se mají použít pro uloženou položku.
CFileDialog::SetSelectedControlItem Nastaví vybraný stav konkrétní položky ve skupině přepínačů nebo pole se seznamem nalezené v dialogovém okně.
CFileDialog::SetTemplate Nastaví šablonu dialogového okna pro CFileDialog objekt.
CFileDialog::StartVisualGroup Deklaruje skupinu vizuálů v dialogovém okně. Následná volání jakékoli metody add tyto prvky do této skupiny přidá.
CFileDialog::UpdateOFNFromShellDialog Aktualizuje data uložená v m_ofn členské proměnné tak, aby odpovídala aktuálnímu stavu dialogového okna souboru.

Chráněné metody

Název Popis
CFileDialog::OnButtonClicked Volá se při kliknutí na tlačítko.
CFileDialog::OnCheckButtonToggled Volá se, když je zaškrtávací políčko zaškrtnuté nebo nezaškrtnuté.
CFileDialog::OnControlActivating Volá se, když je ovládací prvek aktivní.
CFileDialog::OnFileNameChange Zpracovává WM_NOTIFY CDN_SELCHANGE zprávu.
CFileDialog::OnFileNameOK Ověří název souboru zadaný v dialogovém okně.
CFileDialog::OnFolderChange Zpracovává zprávu WM_NOTIFY CDN_FOLDERCHANGE.
CFileDialog::OninitDone Zpracovává WM_NOTIFY CDN_INITDONE zprávu.
CFileDialog::OnItemSelected Volá se při výběru položky kontejneru.
CFileDialog::OnLBSelChangedNotify Umožňuje provádět vlastní akce při změně výběru souboru.
CFileDialog::OnShareViolation Zpracovává porušení sdílení.
CFileDialog::OnTypeChange Zpracovává WM_NOTIFY CDN_TYPECHANGE zprávu.

Veřejné datové členy

Název Popis
CFileDialog::m_ofn Struktura Windows OPENFILENAME . Poskytuje přístup k základním parametrům dialogového okna souboru.

Poznámky

Běžná dialogová okna souborů umožňují implementovat dialogová okna výběru souborů, například Otevřít soubor a Uložit jako způsobem, který je konzistentní se standardy Windows.

Můžete použít CFileDialog stejně jako u zadaného konstruktoru, nebo můžete odvodit vlastní třídu dialogového okna a CFileDialog napsat konstruktor tak, aby vyhovoval vašim potřebám. V obou případech se tato dialogová okna budou chovat jako standardní dialogová okna MFC, protože jsou odvozeny z CCommonDialog Třídy. CFileDialog spoléhá na COMMDLG.DLL soubor, který je součástí Windows.

Vzhled i funkce CFileDialog systému Windows Vista nebo novější se liší od předchozích verzí systému Windows. Výchozí nastavení CFileDialog automaticky používá nový styl Windows Vista nebo novější bez změn kódu, pokud je program zkompilován a spuštěn v systému Windows Vista nebo novější. K ručnímu přepsání této automatické aktualizace použijte parametr bVistaStyle v konstruktoru. Výjimka automatické aktualizace je přizpůsobená dialogová okna. Nebudou převedeny na nový styl. Další informace o konstruktoru naleznete v tématu CFileDialog::CFileDialog.

Poznámka:

Systém ID ovládacího prvku se při použití CFileDialogsystému Windows Vista nebo novější liší od dřívějších verzí systému Windows . Před přenesením projektu z dřívější verze Windows je nutné aktualizovat všechny odkazy na CFileDialog ovládací prvky v kódu.

Některé CFileDialog metody nejsou podporovány v systému Windows Vista nebo novější. Informace o tom, jestli je metoda podporovaná, najdete v tématu jednotlivých metod. Kromě toho následující zděděné funkce nejsou podporovány v systému Windows Vista nebo novější:

Zprávy oken pro CFileDialog třídu se liší v závislosti na tom, jaký operační systém používáte. Například Systém Windows XP nepodporuje CDialog::OnCancel a CDialog::OnOK pro CFileDialog třídu. Operační systémy Windows Vista a novější je však podporují. Další informace o různých generovaných zprávách a pořadí, ve kterém jsou přijaty, naleznete v tématu CFileDialog Ukázka: Protokolování pořadí událostí.

Chcete-li použít CFileDialog objekt, nejprve vytvořte objekt pomocí konstruktoru CFileDialog . Po vytvoření dialogového okna můžete nastavit nebo upravit jakékoli hodnoty ve struktuře CFileDialog::m_ofn pro inicializaci hodnot nebo stavů ovládacích prvků dialogového okna. Struktura m_ofn je typu OPENFILENAME. Další informace naleznete ve struktuře OPENFILENAME v sadě Windows SDK.

Po inicializaci ovládacích prvků dialogového okna zavolejte CFileDialog::D oModal metoda zobrazení dialogového okna, aby uživatel mohl zadat cestu a název souboru. DoModal vrátí, zda uživatel kliknul na TLAČÍTKO OK (IDOK) nebo na tlačítko Storno (IDCANCEL). Pokud DoModal vrátí idOK, můžete pomocí jedné z CFileDialog veřejných členských funkcí načíst informace vložené uživatelem.

Poznámka:

V systému Windows Vista nebo novějších více volání IFileDialog::SetFileTypes způsobí chybu. Druhé volání SetFileTypes pro libovolnou CFileDialog instanci vrátí E_UNEXPECTED v systému Windows Vista nebo novějším. Některé CFileDialog funkce metody volají SetFileTypes. Například dvě volání CFileDialog::DoModal pro stejnou CFileDialog instanci vygeneruje ASSERT.

CFileDialog obsahuje několik chráněných členů, které umožňují provádět vlastní zpracování porušení sdílených složek, ověření názvu souboru a oznámení o změně seznamu. Tito chránění členové jsou funkce zpětného volání, které většina aplikací nemusí používat, protože výchozí zpracování se provádí automaticky. Položky mapy zpráv pro tyto funkce nejsou vyžadovány, protože se jedná o standardní virtuální funkce.

Pomocí funkce CommDlgExtendedError systému Windows můžete určit, jestli během inicializace dialogového okna došlo k chybě, a získat další informace o chybě.

CFileDialog Zničení objektů se zpracovává automaticky. Nemusíte volat CDialog::EndDialog.

Pokud chcete, aby uživatel vybral více souborů, nastavte před voláním DoModalpříznak OFN_ALLOWMULTISELECT . Musíte zadat vlastní vyrovnávací paměť názvu souboru, aby se přizpůsobil vrácený seznam více názvů souborů. Proveďte to nahrazením m_ofn.lpstrFile ukazatelem na vyrovnávací paměť, kterou jste přidělili, po vytvoření CFileDialog, ale před voláním DoModal.

Kromě toho je nutné nastavit m_ofn.nMaxFile pomocí počtu znaků v vyrovnávací paměti, na kterou m_ofn.lpstrFileodkazuje . Pokud nastavíte maximální počet souborů, na nkteré se má vybrat, je požadovaná velikost n * (_MAX_PATH + 1) + 1vyrovnávací paměti . První položka vrácená ve vyrovnávací paměti je cesta ke složce, ve které byly vybrané soubory. V dialogových oknech systému Windows Vista nebo novějších verzí jsou řetězce názvů adresářů a souborů ukončeny null s dodatečným znakem null za posledním názvem souboru. Tento formát umožňuje dialogovým oknem stylu Průzkumníka vrátit dlouhé názvy souborů, které obsahují mezery. V dialogových oknech starého stylu jsou řetězce názvů adresářů a souborů oddělené mezerami a funkce používá krátké názvy souborů pro názvy souborů s mezerami.

Následující příklad ukazuje, jak použít vyrovnávací paměť k načtení a výpisu 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++;
  }
}

Chcete-li změnit velikost vyrovnávací paměti v reakci na uživatele, který vybírá více názvů souborů, je nutné odvodit novou třídu z CFileDialog CFileDialog::OnFileNameChange metoda.

Pokud odvozujete novou třídu, CFileDialogmůžete k zpracování všech zpráv použít mapu zpráv. Chcete-li rozšířit výchozí zpracování zpráv, odvodit třídu z CFileDialog, přidat mapu zpráv do nové třídy a poskytnout členské funkce pro nové zprávy. K přizpůsobení dialogového okna nemusíte zadávat funkci háku.

Chcete-li přizpůsobit dialogové okno, odvodit třídu z CFileDialog, poskytnout vlastní šablonu dialogového okna a přidat mapu zpráv pro zpracování oznámení zprávy z rozšířených ovládacích prvků. Předejte všechny nezpracované zprávy do základní třídy. Funkci háku nemusíte přizpůsobovat.

Používáte-li systém Windows Vista nebo novější styl CFileDialog, nelze použít mapy zpráv a šablony dialogového okna. Místo toho musíte pro podobné funkce použít rozhraní MODELU COM.

Další informace o použití CFileDialognaleznete v tématu Běžné třídy dialogových oken.

Hierarchie dědičnosti

Objekt CObject

CCmdTarget

CWnd

CDialog

CCommonDialog

CFileDialog

Požadavky

Hlavička: afxdlgs.h

CFileDialog::AddCheckButton

Přidá do dialogového okna tlačítko zaškrtnutí.

HRESULT AddCheckButton(
    DWORD dwIDCtl,
    const CString& strLabel,
    BOOL bChecked);

Parametry

dwIDCtl
ID tlačítka zaškrtnutí, které chcete přidat.

strLabel
Název tlačítka zaškrtnutí.

bChecked
Logická hodnota označující aktuální stav tlačítka zaškrtnutí. TRUE, pokud je zaškrtnuto; NEPRAVDA jinak

Poznámky

CFileDialog::AddComboBox

Přidá do dialogového okna pole se seznamem.

HRESULT AddComboBox(DWORD dwIDCtl);

Parametry

dwIDCtl
ID pole se seznamem, které chcete přidat.

Poznámky

CFileDialog::AddControlItem

Přidá položku do ovládacího prvku kontejneru v dialogovém okně.

HRESULT AddControlItem(
    DWORD dwIDCtl,
    DWORD dwIDItem,
    const CString& strLabel);

Parametry

dwIDCtl
ID ovládacího prvku kontejneru pro přidání položky.

dwIDItem
ID položky.

strLabel
Text položky

Poznámky

CFileDialog::AddEditBox

Přidá do dialogového okna textové pole.

HRESULT AddEditBox(
    DWORD dwIDCtl,
    const CString& strText);

Parametry

dwIDCtl
ID pole pro úpravy, které chcete přidat.

strText
Název pole pro úpravy.

Poznámky

CFileDialog::AddMenu

Přidá do dialogového okna nabídku.

HRESULT AddMenu(
    DWORD dwIDCtl,
    const CString& strLabel);

Parametry

dwIDCtl
ID nabídky, která se má přidat.

strLabel
Název nabídky.

Poznámky

CFileDialog::AddPlace

Přidá složku do seznamu míst, která mají uživatel k dispozici k otevření nebo uložení položek.

void AddPlace(
    LPCWSTR lpszFolder,
    FDAP fdap = FDAP_TOP) throw();

void AddPlace(
    IShellItem* psi,
    FDAP fdap = FDAP_TOP) throw();

Parametry

lpszFolder
Cesta ke složce, která má být uživateli zpřístupněna. Může to být jenom složka.

fdap
Určuje umístění složky v seznamu.

psí
Ukazatel na IShellItem, který představuje složku, která má být zpřístupněna uživateli. Může to být jenom složka.

Poznámky

CFileDialog::AddPushButton

Přidá do dialogového okna tlačítko.

HRESULT AddPushButton(
    DWORD dwIDCtl,
    const CString& strLabel);

Parametry

dwIDCtl
ID tlačítka, které chcete přidat.

strLabel
Název tlačítka.

Poznámky

CFileDialog::AddRadioButtonList

Přidá do dialogového okna skupinu přepínačů (označované také jako přepínač).

HRESULT AddRadioButtonList(DWORD dwIDCtl);

Parametry

dwIDCtl
ID skupiny přepínačů, které chcete přidat.

Poznámky

CFileDialog::AddSeparator

Přidá do dialogového okna oddělovač.

HRESULT AddSeparator(DWORD dwIDCtl);

Parametry

dwIDCtl
ID oddělovače přidejte.

Poznámky

CFileDialog::AddText

Přidá text do dialogového okna.

HRESULT AddText(
    DWORD dwIDCtl,
    const CString& strText);

Parametry

dwIDCtl
ID textu, který chcete přidat.

strText
Název textu.

Poznámky

CFileDialog::ApplyOFNToShellDialog

Aktualizuje aktuální stav CFileDialog na základě hodnot uložených m_ofn v datové struktuře.

void ApplyOFNToShellDialog();

Poznámky

Ve verzích windows před Windows Vista, člen OPENFILENAME datové struktury byl nepřetržitě synchronizován se stavem CFileDialog. Všechny změny m_ofn členské proměnné se okamžitě projevily ve stavu dialogového okna. Všechny změny stavu dialogového okna také okamžitě aktualizují m_ofn členovou proměnnou.

V systému Windows Vista nebo novějších není zaručeno synchronizaci hodnot v m_ofn členské proměnné a stavu CFileDialog . Tato funkce vynutí aktualizaci stavu CFileDialog tak, aby odpovídala struktuře m_ofn . Systém Windows volá tuto funkci automaticky během CFileDialog::D oModal.

Další informace o použití CFileDialog třídy v systému Windows Vista nebo novější naleznete v tématu CFileDialog Třída.

Příklad

Podívejte se na příklad pro CFileDialog::UpdateOFNFromShellDialog.

CFileDialog::CFileDialog

Voláním této funkce vytvoříte standardní dialogové okno soubor systému 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

bOpenFileDialog
[v] Parametr, který určuje, jaký typ dialogového okna se má vytvořit. Nastavte hodnotu TRUE a vytvořte dialogové okno Otevřít soubor. Pokud chcete vytvořit dialogové okno Uložit jako soubor, nastavte ho na HODNOTU FALSE.

lpszDefExt
[v] Výchozí přípona názvu souboru. Pokud uživatel do pole Název souboru nezahrne známé rozšíření (které má přidružení v počítači uživatele), přípona zadaná lpszDefExt se automaticky připojí k názvu souboru. Pokud je tento parametr NULL, nepřipočítá se žádné rozšíření.

lpszFileName
[v] Počáteční název souboru, který se zobrazí v poli Název souboru. Pokud je hodnota NULL, nezobrazí se žádný počáteční název souboru.

dwFlags
[v] Kombinace jednoho nebo více příznaků, které můžete použít k přizpůsobení dialogového okna. Popis těchto příznaků naleznete ve struktuře OPENFILENAME v sadě Windows SDK. Pokud upravíte m_ofn.Flags člen struktury, použijte ve změnách bitový operátor OR, abyste zachovali výchozí chování beze změny.

lpszFilter
[v] Řada párů řetězců, které určují filtry, které můžete použít pro soubor. Pokud zadáte filtry souborů, zobrazí se v seznamu Soubory pouze soubory, které splňují kritéria filtru. Další informace o práci s filtry souborů najdete v části Poznámky.

pParentWnd
[v] Ukazatel na nadřazené okno nebo okno vlastníka dialogového okna souboru.

dwSize
[v] Velikost OPENFILENAME struktury. Tato hodnota závisí na verzi operačního systému. MFC tento parametr použil k určení vhodného typu dialogového okna pro vytvoření. Výchozí velikost 0 znamená, že kód MFC určí správnou velikost dialogového okna, která se má použít na základě verze operačního systému, na které je program spuštěn.

bVistaStyle
[v] Poznámka: Tento parametr je k dispozici v sadě Visual Studio 2008 a novější a způsobí použití dialogového okna nového stylu pouze v případě, že používáte v systému Windows Vista nebo novější.

Parametr, který určuje styl dialogového okna souboru. Nastavte hodnotu TRUE tak, aby používala nová dialogová okna souborů ve stylu Vista. V opačném případě se použije starý styl dialogových oken. Další informace o spuštění v části Poznámky naleznete v části Vista.

Poznámky

V závislosti na hodnotě bOpenFileDialog se vytvoří dialogové okno Otevřít soubor nebo Uložit jako.

Určení výchozího rozšíření pomocí lpszDefExt nemusí způsobit očekávané chování, protože je zřídka předvídatelné, jaké 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ího rozšíření, můžete odvodit vlastní třídu z CFileDialoga přepsat metodu CFileDialog::OnFileNameOK , aby prováděla vlastní zpracování rozšíření.

Pokud chcete uživateli povolit výběr více souborů, nastavte před voláním doModal příznak OFN_ALLOWMULTISELECT. Chcete-li uložit vrácený seznam více názvů souborů, musíte zadat vlastní vyrovnávací paměť názvu souboru. Uděláte to tak, že nahradíte m_ofn.lpstrFile ukazatelem na vyrovnávací paměť, kterou jste přidělili, po vytvoření CFileDialog, ale před voláním DoModal. Kromě toho je nutné nastavit m_ofn.nMaxFile s počtem znaků v vyrovnávací paměti, na kterou m_ofn.lpstrFileodkazuje . Pokud nastavíte maximální počet souborů, které mají být vybrány na n, je nezbytná velikost nvyrovnávací paměti *(_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++;
  }
}

Pokud chcete uživateli povolit změnu velikosti dialogového okna stylu Průzkumníka pomocí myši nebo klávesnice, nastavte příznak OFN_ENABLESIZING. Nastavení tohoto příznaku je nezbytné pouze v případě, že zadáte proceduru háku nebo vlastní šablonu. Příznak funguje pouze s dialogovým oknem ve stylu Průzkumníka; Dialogová okna starého stylu nelze změnit.

Parametr lpszFilter se používá k určení typu názvu souboru, který musí být zobrazen v seznamu souborů. První řetězec ve dvojici řetězců popisuje filtr; druhý řetězec označuje příponu názvu souboru, která se má použít. Více přípon může být určeno středníkem (znak ;) jako oddělovačem. Řetězec končí dvěma svislými znaky pruhu (||), následovanými znakem NULL. Pro tento parametr můžete také použít objekt CString .

Microsoft Excel například umožňuje uživatelům otevírat soubory, které mají přípony .xlc (graf) nebo .xls (list), mimo jiné. Filtr pro Excel může být napsaný takto:

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

Pokud však plánujete použít tento řetězec k přímé aktualizaci OPENFILENAME struktury, měli byste řetězce oddělovat znakem null místo '\0'svislých pruhů ('|').

Parametr bVistaStyle je použitelný pouze při spuštění v systému Windows Vista nebo novější. V dřívějších verzích Windows se tento parametr ignoruje. Pokud je bVistaStyle nastavena na TRUE, při kompilaci programu pomocí sady Visual Studio 2008 nebo novější, bude použit nový Vista style File Dialog . V opačném případě se použije předchozí dialogové okno souboru stylu MFC.

Šablony dialogů nejsou podporovány v dialogech založených na bVistaStyle

Příklad

Podívejte se na příklad pro CFileDialog::D oModal.

CFileDialog::D oModal

Voláním této funkce zobrazíte dialogové okno Soubor systému Windows a umožníte uživateli procházet soubory a adresáře a zadat název souboru.

virtual INT_PTR DoModal();

Návratová hodnota

IDOK nebo IDCANCEL. Pokud je vrácena funkce IDCANCEL, zavolejte funkci CommDlgExtendedError systému Windows, abyste zjistili, zda došlo k chybě.

IDOK a IDCANCEL jsou konstanty, které označují, zda uživatel vybral tlačítko OK nebo Zrušit.

Poznámky

Pokud chcete inicializovat různé možnosti dialogového okna souboru nastavením členů m_ofn struktury, měli byste to udělat před voláním DoModal, ale po vytvoření objektu dialogového okna.

Pokud například chcete uživateli povolit výběr více souborů, nastavte před voláním DoModalpříznak OFN_ALLOWMULTISELECT, jak je znázorněno v příkladu kódu v tomto tématu.

Když uživatel klikne na tlačítka OK nebo Zrušit dialogové okno nebo vybere možnost Zavřít z nabídky ovládacích prvků dialogového okna, vrátí se do vaší aplikace ovládací prvek. Potom můžete volat další členské funkce, které načtou nastavení nebo informace o vstupech uživatele do dialogového okna.

DoModal je virtuální funkce přepsaná z třídy CDialog.

Příklad

void CMyClass::OnFileOpen()
{
   // szFilters is a text string that includes two file name filters:
   // "*.my" for "MyType Files" and "*.*' for "All Files."
   TCHAR szFilters[]= _T("MyType Files (*.my)|*.my|All Files (*.*)|*.*||");

   // Create an Open dialog; the default file name extension is ".my".
   CFileDialog fileDlg(TRUE, _T("my"), _T("*.my"),
      OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, szFilters);
   
   // Display the file dialog. When user clicks OK, fileDlg.DoModal() 
   // returns IDOK.
   if(fileDlg.DoModal() == IDOK)
   {
      CString pathName = fileDlg.GetPathName();
   
      // Implement opening and reading file in here.

      //Change the window's title to the opened file's title.
      CString fileName = fileDlg.GetFileTitle();
   
      SetWindowText(fileName);
   }
}

CFileDialog::EnableOpenDropDown

Povolí rozevírací seznam na tlačítku Otevřít nebo Uložit v dialogovém okně.

HRESULT EnableOpenDropDown(DWORD dwIDCtl);

Parametry

dwIDCtl
ID rozevíracího seznamu

Poznámky

CFileDialog::EndVisualGroup

Zastaví přidání prvků do skupiny vizuálů v dialogovém okně.

HRESULT EndVisualGroup();

Návratová hodnota

Vrátí S_OK v případě úspěchu; v opačném případě se zobrazí chybová hodnota.

Poznámky

CFileDialog::GetCheckButtonState

Načte aktuální stav zaškrtávacího tlačítka (zaškrtávací políčko) v dialogovém okně.

HRESULT GetCheckButtonState(
    DWORD dwIDCtl,
    BOOL& bChecked);

Parametry

dwIDCtl
ID zaškrtávacího políčka.

bChecked
Stav zaškrtávacího políčka. PRAVDA označuje zaškrtnuté; NEPRAVDA označuje, že není zaškrtnuto.

Poznámky

CFileDialog::GetControlItemState

Načte aktuální stav položky v ovládacím prvku kontejneru nalezeném v dialogovém okně.

HRESULT GetControlItemState(
    DWORD dwIDCtl,
    DWORD dwIDItem,
    CDCONTROLSTATEF& dwState);

Parametry

dwIDCtl
ID ovládacího prvku kontejneru.

dwIDItem
ID položky.

dwState
Odkaz na proměnnou, která přijímá jednu z více hodnot z výčtu CDCONTROLSTATE, která označuje aktuální stav ovládacího prvku.

Poznámky

CFileDialog::GetControlState

Načte aktuální viditelnost a povolené stavy daného ovládacího prvku.

HRESULT GetControlState(
    DWORD dwIDCtl,
    CDCONTROLSTATEF& dwState);

Parametry

dwIDCtl
ID ovládacího prvku.

dwState
Odkaz na proměnnou, která přijímá jednu nebo více hodnot z výčtu CDCONTROLSTATE, která označuje aktuální stav ovládacího prvku.

Poznámky

CFileDialog::GetEditBoxText

Načte aktuální text v ovládacím prvku textového pole.

HRESULT GetEditBoxText(
    DWORD dwIDCtl,
    CString& strText);

Parametry

dwIDCtl
ID textového pole.

strText
Textová hodnota.

Poznámky

CFileDialog::GetFileExt

Voláním této funkce načtěte rozšíření názvu souboru zadaného do dialogového okna.

CString GetFileExt() const;

Návratová hodnota

Přípona názvu souboru.

Poznámky

Pokud je například zadaný název souboru DATA.TXT, GetFileExt vrátí "TXT".

Pokud m_ofn.Flags má nastavený příznak OFN_ALLOWMULTISELECT, obsahuje tento řetězec posloupnost řetězců ukončených hodnotou null, přičemž první řetězec je vybraná cesta k adresáři skupiny souborů následovaná názvy všech souborů vybraných uživatelem. K načtení názvů cest k souboru použijte členské funkce GetStartPosition a GetNextPathName .

CFileDialog::GetFileName

Voláním této funkce načtěte název souboru zadaného v dialogovém okně.

CString GetFileName() const;

Návratová hodnota

Název souboru.

Poznámky

Název souboru zahrnuje předponu i příponu. Vrátí se například GetFileName text. DAT pro soubor C:\FILES\TEXT.DAT.

Pokud m_ofn.Flags je OFN_ALLOWMULTISELECT nastaven příznak, měli byste zavolat GetStartPosition a GetNextPathName načíst název cesty k souboru.

CFileDialog::GetFileTitle

Voláním této funkce načtěte název souboru zadaného v dialogovém okně.

CString GetFileTitle() const;

Návratová hodnota

Název souboru.

Poznámky

Název souboru obsahuje pouze jeho předponu bez cesty nebo přípony. Například GetFileTitle vrátí "TEXT" pro soubor C:\FILES\TEXT.DAT.

Pokud m_ofn.Flags má nastavený příznak OFN_ALLOWMULTISELECT, obsahuje tento řetězec posloupnost řetězců ukončených hodnotou null, přičemž první řetězec je vybraná cesta k adresáři skupiny souborů následovaná názvy všech souborů vybraných uživatelem. Z tohoto důvodu použijte členské funkce GetStartPosition a GetNextPathName k načtení dalšího názvu souboru v seznamu.

Příklad

Podívejte se na příklad pro CFileDialog::D oModal.

CFileDialog::GetFolderPath

Voláním této členské funkce načtěte cestu k aktuálně otevřené složce nebo adresáři pro dialogové okno Otevřít nebo Uložit jako.

CString GetFolderPath() const;

Návratová hodnota

CString objekt obsahující aktuálně otevřenou složku nebo adresář.

Poznámky

Dialogové okno musí být vytvořeno se stylem OFN_EXPLORER; jinak metoda selže s kontrolním výrazem.

Tuto metodu můžete volat pouze při zobrazení dialogového okna. Po zavření dialogového okna přestane tato funkce fungovat a metoda selže s kontrolním výrazem.

CFileDialog::GetIFileDialogCustomize

Načte ukazatel na interní objekt COM pro daný CFileDialog.

IFileDialogCustomize* GetIFileDialogCustomize();

Návratová hodnota

Ukazatel na interní objekt COM pro CFileDialogobjekt . Za správné uvolnění tohoto ukazatele je vaší zodpovědností.

Poznámky

Tuto funkci použijte pouze v systému Windows Vista nebo novějším s objektem, který má bVistaStyle nastaven na HODNOTU TRUE. Pokud tuto funkci použijete, když bVistaStyle je FALSE, vrátí hodnotu NULL v režimu vydání a vyvolá kontrolní výraz v režimu ladění.

Další informace o IFileDialogCustomize rozhraní naleznete v tématu IFileDialogCustomize.

Příklad

Tento příklad načte interní objekt MODELU COM. Chcete-li spustit tento příklad kódu, je nutné jej zkompilovat v systému Windows Vista nebo novější.

// Get the interface pointer
IFileDialogCustomize *customDlgPtr = m_myFileDialogPtr->GetIFileDialogCustomize();

// Make sure that it is not null
if (customDlgPtr != NULL)
{
   //
   // Perform any interface functionality here
   //

   // Release the pointer
   customDlgPtr->Release();
}

CFileDialog::GetIFileOpenDialog

Načte ukazatel na interní objekt MODELU COM pro danou CFileDialog.

IFileOpenDialog* GetIFileOpenDialog();

Návratová hodnota

Ukazatel na interní objekt COM pro CFileDialogobjekt . Za správné uvolnění tohoto ukazatele je vaší zodpovědností.

Poznámky

Tuto funkci použijte pouze v systému Windows Vista nebo novějším s objektem, který má bVistaStyle nastaven na HODNOTU TRUE. Tato funkce vrátí hodnotu NULL, pokud CFileDialog není dialogové okno Otevřít nebo pokud bVistaStyle je nastavena na HODNOTU FALSE. V tomto posledním případě vrátí funkce pouze hodnotu NULL v režimu vydání – v režimu ladění vyvolá kontrolní výraz.

Další informace o IFileOpenDialog rozhraní naleznete v tématu IFileOpenDialog.

Příklad

Tento příklad načte interní objekt MODELU COM. Chcete-li spustit tento kód, je nutné jej zkompilovat v systému Windows Vista nebo novější.

// Get the interface pointer
IFileOpenDialog * openDlgPtr = m_myFileDialogPtr->GetIFileOpenDialog();

// Make sure that it is not null
if ( openDlgPtr != NULL )
{
    //
    // Perform any interface functionality here
    //

    // Release the pointer
    openDlgPtr->Release();
}

CFileDialog::GetIFileSaveDialog

Načte ukazatel na interní objekt MODELU COM pro danou CFileDialog.

IFileSaveDialog* GetIFileSaveDialog();

Návratová hodnota

Ukazatel na interní objekt COM pro CFileDialogobjekt . Za správné uvolnění tohoto ukazatele je vaší zodpovědností.

Poznámky

Tuto funkci použijte pouze v systému Windows Vista nebo novějším s objektem, který má bVistaStyle nastaven na HODNOTU TRUE. Tato funkce vrátí hodnotu NULL, pokud CFileDialog není dialogové okno Uložit nebo pokud bVistaStyle je nastavena na HODNOTU FALSE. V tomto posledním případě vrátí funkce pouze hodnotu NULL v režimu vydání – v režimu ladění vyvolá kontrolní výraz.

Další informace o IFileSaveDialog rozhraní naleznete v tématu IFileSaveDialog.

Příklad

Tento příklad načte interní objekt MODELU COM. Chcete-li spustit tento příklad kódu, je nutné jej zkompilovat v systému Windows Vista nebo novější.

// Get the interface pointer
IFileSaveDialog *saveDlgPtr = m_myFileDialogPtr->GetIFileSaveDialog();

// Make sure that it is not null
if (saveDlgPtr != NULL)
{
   //
   // Perform any interface functionality here
   //

   // Release the pointer
   saveDlgPtr->Release();
}

CFileDialog::GetNextPathName

Voláním této funkce načtěte další název souboru ze skupiny vybrané v dialogovém okně.

CString GetNextPathName(POSITION& pos) const;

Parametry

Pos
Odkaz na hodnotu POSITION vrácenou předchozím GetNextPathName voláním nebo GetStartPosition voláním funkce Hodnota NULL, pokud byl dosažen konec seznamu.

Návratová hodnota

Úplná cesta k souboru.

Poznámky

Cesta k názvu souboru obsahuje název souboru a celou cestu k adresáři. Například GetNextPathName vrátí "C:\FILES\TEXT" (C:\FILES\TEXT). DAT pro soubor C:\FILES\TEXT.DAT. Můžete použít GetNextPathName ve smyčce přesměrování iterace, pokud vytvoříte počáteční pozici s voláním GetStartPosition.

Pokud se výběr skládá jenom z jednoho souboru, vrátí se tento název souboru.

CFileDialog::GetOFN

Načte přidruženou OPENFILENAME strukturu.

const OPENFILENAME& GetOFN() const;

OPENFILENAME& GetOFN();

Návratová hodnota

Struktura OPENFILENAME .

Poznámky

Druhá verze této funkce slouží k inicializaci vzhledu dialogového okna Otevřít soubor nebo Uložit soubor jako po jeho vytvoření, ale před zobrazením pomocí DoModal členské funkce. Můžete například nastavit lpstrTitle člena m_ofn na titulek, který má dialogové okno mít.

CFileDialog::GetPathName

Voláním této funkce načtěte úplnou cestu k souboru zadanému v dialogovém okně.

CString GetPathName() const;

Návratová hodnota

Úplná cesta k souboru.

Poznámky

Cesta k názvu souboru obsahuje název souboru a celou cestu k adresáři. Například GetPathName vrátí "C:\FILES\TEXT" (C:\FILES\TEXT). DAT pro soubor C:\FILES\TEXT.DAT.

Pokud m_ofn.Flags má nastavený příznak OFN_ALLOWMULTISELECT, obsahuje tento řetězec posloupnost řetězců s hodnotou null-teminated, přičemž první řetězec je cesta k adresáři vybrané skupiny souborů následovaná názvy všech souborů vybraných uživatelem. Z tohoto důvodu použijte členské funkce GetStartPosition a GetNextPathName k načtení dalšího názvu souboru v seznamu.

Příklad

Podívejte se na příklad pro CFileDialog::D oModal.

CFileDialog::GetReadOnlyPref

Voláním této funkce určíte, zda bylo zaškrtnuto políčko Jen pro čtení v dialogových oknech Otevřít soubor ve Windows a Uložit jako.

BOOL GetReadOnlyPref() const;

Návratová hodnota

Nenulové, pokud je zaškrtnuto políčko Jen pro čtení v dialogovém okně; jinak 0.

Poznámky

Zaškrtávací políčko Jen pro čtení můžete skrýt nastavením stylu OFN_HIDEREADONLY v konstruktoru CFileDialog .

Poznámka:

Objekty ve stylu CFileDialog Windows Vista nebo novější tuto funkci nepodporují. Pokus o použití této funkce v systému Windows Vista nebo novější styl CFileDialog vyvolá CNotSupportedException.

CFileDialog::GetResult

Načte volbu, kterou uživatel provedl v dialogovém okně.

IShellItem* GetResult() throw();

Návratová hodnota

Ukazatel na IShellItem, který představuje volbu uživatele.

Poznámky

CFileDialog::GetResults

Načte možnosti uživatele v dialogovém okně, které umožňuje vícenásobný výběr.

IShellItemArray* GetResults() throw();

Návratová hodnota

Ukazatel na IShellItemArray, prostřednictvím kterého lze získat přístup k položkám vybraným v dialogovém okně.

Poznámky

CFileDialog::GetSelectedControlItem

Načte konkrétní položku ze zadaného ovládacího prvku kontejneru v dialogovém okně.

HRESULT GetSelectedControlItem(
    DWORD dwIDCtl,
    DWORD& dwIDItem);

Parametry

dwIDCtl
ID ovládacího prvku kontejneru.

dwIDItem
ID položky, kterou uživatel vybral v ovládacím prvku.

Poznámky

CFileDialog::GetStartPosition

Voláním této členské funkce načtěte pozici názvu první cesty k souboru v seznamu, pokud m_ofn.Flags má nastavenou OFN_ALLOWMULTISELECT příznak.

POSITION GetStartPosition() const;

Návratová hodnota

Hodnota POSITION, kterou lze použít pro iteraci; Hodnota NULL, pokud je seznam prázdný.

CFileDialog::HideControl

Voláním této členské funkce skryjete zadaný ovládací prvek v dialogovém okně Otevřít nebo Uložit jako společné.

void HideControl(int nID);

Parametry

Nid
ID ovládacího prvku, který chcete skrýt.

Poznámky

Dialogové okno musí být vytvořeno se stylem OFN_EXPLORER; jinak funkce selže s kontrolním výrazem.

CFileDialog::IsPickFoldersMode

Určuje, zda je aktuální dialogové okno v režimu výběru složky.

BOOL IsPickFoldersMode() const;

Návratová hodnota

TRUE, pokud dialogové okno je v režimu pro výběr složky; jinak NEPRAVDA.

Poznámky

CFileDialog::m_ofn

m_ofn je struktura typu OPENFILENAME. Data v této struktuře představují aktuální stav CFileDialog.

Poznámky

Tato struktura slouží k inicializaci vzhledu souboru Otevřít nebo Uložit jako dialogové okno po vytvoření, ale před zobrazením pomocí DoModal metoda. Můžete například nastavit člen m_ofn lpstrTitle titulku, který má dialogové okno mít.

S Windows Vista nebo novějším stylem CFileDialog není zaručeno, m_ofn že vždy odpovídá stavu dialogového okna. Synchronizuje se s dialogovým oknem ve starších verzích Windows. Další informace o synchronizaci struktury a CFileDialog stavu v systému Windows Vista nebo novější naleznete v tématu CFileDialog::ApplyOFNToShellDialog a CFileDialog::UpdateOFNFromShellDialog.m_ofn

Dialogy souborů ve stylu Windows Vista nebo novější nepodporují určité členy a příznaky CFileDialogsouboru . V důsledku toho to nebude mít žádný vliv.

Následuje seznam členů, které nejsou podporovány systémem Windows Vista nebo novějším:

  • lpstrCustomFilter

  • lpstrInitialDir

  • lCustData

  • lpfnHook

  • lpTemplateName

Následující příznaky nejsou podporovány, a proto nemají žádný vliv při použití systému Windows Vista nebo novější styl CFileDialog:

  • OFN_ENABLEHOOK

  • OFN_ENABLEINCLUDENOTIFY

  • OFN_ENABLETEMPLATE

  • OFN_ENABLETEMPLATEHANDLE

  • OFN_EXPLORER

  • OFN_EXTENSIONDIFFERENT

  • OFN_HIDEREADONLY

  • OFN_LONGNAMES – efektivně vždy v systému Windows Vista nebo novější

  • OFN_NOLONGNAMES – efektivně vždy vypnuto v systému Windows Vista nebo novějším

  • OFN_NONETWORKBUTTON – efektivně vždy v systému Windows Vista nebo novější

  • OFN_READONLY

  • OFN_SHOWHELP

Další informace o této struktuře naleznete ve struktuře OPENFILENAME v sadě Windows SDK.

CFileDialog::MakeProminent

Umístí ovládací prvek do dialogového okna tak, aby byl v porovnání s jinými ovládacími prvky vyniknut.

HRESULT MakeProminent(DWORD dwIDCtl);

Parametry

dwIDCtl
ID ovládacího prvku.

Poznámky

CFileDialog::OnButtonClicked

Volá se při kliknutí na tlačítko.

virtual void OnButtonClicked(DWORD dwIDCtl);

Parametry

dwIDCtl
ID tlačítka.

Poznámky

CFileDialog::OnCheckButtonToggled

Volá se, když je zaškrtávací políčko zaškrtnuté nebo nezaškrtnuté.

virtual void OnCheckButtonToggled(
    DWORD dwIDCtl,
    BOOL bChecked);

Parametry

dwIDCtl
ID zaškrtávacího políčka.

bChecked
Zaškrtnuté nebo nezaškrtnuté.

Poznámky

CFileDialog::OnControlActivating

Volá se při aktivaci ovládacího prvku.

virtual void OnControlActivating(DWORD dwIDCtl);

Parametry

dwIDCtl
ID ovládacího prvku.

Poznámky

CFileDialog::OnFileNameChange

Tuto metodu přepište, pokud chcete zpracovat WM_NOTIFY CDN_SELCHANGE zprávu.

virtual void OnFileNameChange();

Poznámky

Systém odešle CDN_SELCHANGE zprávu, když uživatel vybere nový soubor nebo složku v seznamu souborů dialogového okna Otevřít nebo Uložit jako . Tuto metodu přepište, pokud chcete provést jakékoli akce v reakci na tuto zprávu.

Systém tuto zprávu odešle pouze v případě, že se dialogové okno vytvořilo se zapnutým příznakem OFN_EXPLORER. Další informace o oznámení najdete v tématu CDN_SELCHANGE. Informace o příznaku OFN_EXPLORER naleznete ve struktuře OPENFILENAME a dialogových oknech Otevřít a Uložit jako.

CFileDialog::OnFileNameOK

Tuto funkci přepište pouze v případě, že chcete zadat vlastní ověření názvů souborů, které jsou zadány do společného dialogového okna soubor.

virtual BOOL OnFileNameOK();

Návratová hodnota

1, pokud název souboru není platný název souboru; jinak 0.

Poznámky

Tato funkce umožňuje odmítnout název souboru z jakéhokoli důvodu specifického pro aplikaci. Za normálních okolností tuto funkci nemusíte používat, protože architektura poskytuje výchozí ověření názvů souborů a zobrazí okno se zprávou, pokud je zadán neplatný název souboru.

Pokud se vrátí hodnota 1, zůstane dialogové okno zobrazeno, aby uživatel zadal jiný název souboru. Dialogové okno zavře dialogové okno, pokud je návrat 0. Jiné nenulové návratové hodnoty jsou aktuálně rezervované a neměly by se používat.

CFileDialog::OnFolderChange

Přepište tuto funkci tak, aby zpracovávala zprávu WM_NOTIFYCDN_FOLDERCHANGE.

virtual void OnFolderChange();

Poznámky

Zpráva s oznámením se odešle při otevření nové složky v dialogovém okně Otevřít nebo Uložit jako.

Oznámení se odešle pouze v případě, že se dialogové okno vytvořilo se stylem OFN_EXPLORER. Další informace o oznámení najdete v tématu CDN_FOLDERCHANGE. Informace o stylu OFN_EXPLORER naleznete ve struktuře OPENFILENAME a dialogových oknech Otevřít a Uložit jako.

CFileDialog::OninitDone

Přepište tuto funkci tak, aby zpracovávala zprávu WM_NOTIFY CDN_INITDONE.

virtual void OnInitDone();

Poznámky

Systém odešle tuto zprávu s oznámením, když systém dokončil uspořádání ovládacích prvků v dialogovém okně Otevřít nebo Uložit jako , aby byl prostor pro ovládací prvky podřízeného dialogového okna.

Systém tento příkaz odešle pouze v případě, že se dialogové okno vytvořilo se stylem OFN_EXPLORER. Další informace o oznámení najdete v tématu CDN_INITDONE. Informace o stylu OFN_EXPLORER naleznete ve struktuře OPENFILENAME a dialogových oknech Otevřít a Uložit jako.

Poznámka:

Dialogy souborů se systémem Windows Vista nebo novějším stylem tuto funkci nepodporují. Pokus o použití této funkce v dialogovém okně souboru se systémem Windows Vista nebo novějším stylem vyvolá CNotSupportedException.

CFileDialog::OnItemSelected

Volá se při výběru položky kontejneru.

virtual void OnItemSelected(
    DWORD dwIDCtl,
    DWORD dwIDItem);

Parametry

dwIDCtl
ID ovládacího prvku kontejneru.

dwIDItem
ID položky.

Poznámky

CFileDialog::OnLBSelChangedNotify

Tato funkce se volá vždy, když se bude měnit aktuální výběr v seznamu.

virtual void OnLBSelChangedNotify(
    UINT nIDBox,
    UINT iCurSel,
    UINT nCode);

Parametry

nIDBox
ID pole se seznamem nebo pole se seznamem, ve kterém došlo k výběru.

iCurSel
Index aktuálního výběru.

nCode
Kód oznámení o ovládacím prvku. Tento parametr musí mít jednu z následujících hodnot:

  • CD_LBSELCHANGE Určuje iCurSel je vybraná položka v seznamu s jedním výběrem.

  • CD_LBSELSUB Určuje, že iCurSel již není vybrán v seznamu s vícenásobným výběrem.

  • CD_LBSELADD Určuje, že je v seznamu s vícenásobným výběrem vybrán iCurSel .

  • CD_LBSELNOITEMS Určuje, že v seznamu s vícenásobným výběrem neexistuje žádný výběr.

Poznámky

Přepsat tuto funkci tak, aby poskytovala vlastní zpracování změn výběru v seznamu. Pomocí této funkce můžete například zobrazit přístupová práva nebo datum poslední změny každého souboru, který uživatel vybere.

CFileDialog::OnShareViolation

Přepište tuto funkci tak, aby poskytovala vlastní zpracování porušení sdílení.

virtual UINT OnShareViolation(LPCTSTR lpszPathName);

Parametry

lpszPathName
Cesta k souboru, na kterém došlo k narušení sdílené složky.

Návratová hodnota

Jedna z následujících hodnot:

  • OFN_SHAREFALLTHROUGH Název souboru se vrátí z dialogového okna.

  • OFN_SHARENOWARN Není nutné provádět žádnou další akci.

  • OFN_SHAREWARN Uživatel obdrží standardní zprávu upozornění pro tuto chybu.

Poznámky

Za normálních okolností tuto funkci nemusíte používat, protože architektura poskytuje výchozí kontrolu porušení sdílení a zobrazí okno se zprávou, pokud dojde k narušení sdílené složky.

Pokud chcete zakázat kontrolu porušení sdílení, použijte bitový operátor OR ke kombinování příznaku OFN_SHAREAWARE s m_ofn.Flags.

CFileDialog::OnTypeChange

Přepište tuto funkci tak, aby zpracovávala WM_NOTIFYCDN_TYPECHANGE zprávu.

virtual void OnTypeChange();

Poznámky

Zpráva s oznámením se odešle, když uživatel vybere nový typ souboru ze seznamu typů souborů v dialogovém okně Otevřít nebo Uložit jako.

Oznámení se odešle pouze v případě, že se dialogové okno vytvořilo se stylem OFN_EXPLORER. Další informace o oznámení najdete v tématu CDN_TYPECHANGE. Informace o stylu OFN_EXPLORER naleznete ve struktuře OPENFILENAME a dialogových oknech Otevřít a Uložit jako.

CFileDialog::RemoveControlItem

Odebere položku z ovládacího prvku kontejneru v dialogovém okně.

HRESULT RemoveControlItem(
    DWORD dwIDCtl,
    DWORD dwIDItem);

Parametry

dwIDCtl
ID ovládacího prvku kontejneru pro odebrání položky.

dwIDItem
ID položky.

Poznámky

CFileDialog::SetCheckButtonState

Nastaví aktuální stav zaškrtávacího tlačítka (zaškrtávací políčko) v dialogovém okně.

HRESULT SetCheckButtonState(
    DWORD dwIDCtl,
    BOOL bChecked);

Parametry

dwIDCtl
ID zaškrtávacího políčka.

bChecked
Stav zaškrtávacího políčka. PRAVDA označuje zaškrtnuté; NEPRAVDA označuje nezaškrtnutou hodnotu.

Poznámky

CFileDialog::SetControlItemState

Nastaví aktuální stav položky v ovládacím prvku kontejneru nalezeném v dialogovém okně.

HRESULT SetControlItemState(
    DWORD dwIDCtl,
    DWORD dwIDItem,
    CDCONTROLSTATEF dwState);

Parametry

dwIDCtl
ID ovládacího prvku kontejneru.

dwIDItem
ID položky.

dwState
Jedna nebo více hodnot z výčtu CDCONTROLSTATE, které označují nový stav ovládacího prvku.

Poznámky

CFileDialog::SetControlItemText

Nastaví text položky ovládacího prvku. Například text, který doprovází přepínač nebo položku v nabídce.

HRESULT SetControlItemText(
    DWORD dwIDCtl,
    DWORD dwIDItem,
    const CString& strLabel);

Parametry

dwIDCtl
ID ovládacího prvku kontejneru.

dwIDItem
ID položky.

strLabel
Text položky

Poznámky

CFileDialog::SetControlLabel

Nastaví text přidružený k ovládacímu prvku, například text tlačítka nebo popisek textového pole.

HRESULT SetControlLabel(
    DWORD dwIDCtl,
    const CString& strLabel);

Parametry

dwIDCtl
ID ovládacího prvku.

strLabel
Název ovládacího prvku.

Poznámky

CFileDialog::SetControlState

Nastaví aktuální viditelnost a povolené stavy daného ovládacího prvku.

HRESULT SetControlState(
    DWORD dwIDCtl,
    CDCONTROLSTATEF dwState);

Parametry

dwIDCtl
ID ovládacího prvku.

dwState
Jedna nebo více hodnot z výčtu CDCONTROLSTATE, které označují aktuální stav ovládacího prvku.

Poznámky

CFileDialog::SetControlText

Voláním této metody nastavíte text pro zadaný ovládací prvek v dialogovém okně Otevřít nebo Uložit jako v Průzkumník stylu.

void SetControlText(
    int nID,
    LPCSTR lpsz);

void SetControlText(
    int nID,
    const wchar_t *lpsz);

Parametry

Nid
[v] ID ovládacího prvku, pro který chcete nastavit text.

lpsz
[v] Ukazatel na řetězec, který obsahuje text nastavený pro ovládací prvek.

Poznámky

Obě verze této funkce jsou platné pro aplikace, které používají Unicode. Pouze verze s typem LPCSTR je však platná pro aplikace, které používají ANSI.

Chcete-li použít tuto metodu, je nutné vytvořit dialogové okno s OFN_EXPLORER styl. Jinak funkce selže s kontrolním výrazem.

CFileDialog::SetDefExt

Voláním této funkce nastavíte výchozí příponu názvu souboru pro společné dialogové okno Otevřít nebo Uložit jako.

void SetDefExt(LPCSTR lpsz);

Parametry

lpsz
Ukazatel na řetězec obsahující výchozí rozšíření, které se má použít pro objekt dialogového okna. Tento řetězec nesmí obsahovat tečku (.).

Poznámky

Dialogové okno musí být vytvořeno se stylem OFN_EXPLORER; jinak funkce selže s kontrolním výrazem.

CFileDialog::SetEditBoxText

Nastaví aktuální text v ovládacím prvku textového pole.

HRESULT SetEditBoxText(
    DWORD dwIDCtl,
    const CString& strText);

Parametry

dwIDCtl
ID textového pole.

strText
Textová hodnota.

Poznámky

CFileDialog::SetProperties

Poskytuje úložiště vlastností, které definuje výchozí hodnoty, které se mají použít pro uloženou položku.

BOOL SetProperties(LPCWSTR lpszPropList);

Parametry

lpszPropList
Seznam předdefinovaných vlastností oddělených textem ;. Seznam příznaků naleznete v části Příznaky OPENFILENAME.

Poznámky

CFileDialog::SetSelectedControlItem

Nastaví vybraný stav konkrétní položky ve skupině přepínačů nebo pole se seznamem nalezené v dialogovém okně.

HRESULT SetSelectedControlItem(
    DWORD dwIDCtl,
    DWORD dwIDItem);

Parametry

dwIDCtl
ID ovládacího prvku kontejneru.

dwIDItem
ID položky, kterou uživatel vybral v ovládacím prvku.

Poznámky

CFileDialog::SetTemplate

Nastaví šablonu dialogového okna pro objekt CFileDialog .

void SetTemplate(
    UINT nWin3ID,
    UINT nWin4ID);

void SetTemplate(
    LPCTSTR lpWin3ID,
    LPCTSTR lpWin4ID);

Parametry

nWin3ID
[v] Obsahuje číslo ID prostředku šablony pro objekt, který není průzkumníkem CFileDialog . Tato šablona se používá pouze u systém Windows NT 3.51 nebo v případě, že styl OFN_EXPLORER neexistuje.

nWin4ID
[v] Obsahuje číslo ID prostředku šablony pro objekt Průzkumníka CFileDialog . Tato šablona se používá pouze v systém Windows NT 4.0 a novějších verzích, Windows 95 a novějších verzích nebo v případě, že je k dispozici styl OFN_EXPLORER.

lpWin3ID
[v] Obsahuje název prostředku šablony pro objekt, který není průzkumníkem CFileDialog . Tato šablona se používá pouze u systém Windows NT 3.51 nebo v případě, že styl OFN_EXPLORER neexistuje.

lpWin4ID
[v] Obsahuje název prostředku šablony objektu Průzkumník CFileDialog . Tato šablona se používá pouze v systém Windows NT 4.0 a novějších verzích, Windows 95 a novějších verzích nebo v případě, že je k dispozici styl OFN_EXPLORER.

Poznámky

Systém bude používat pouze jednu ze zadaných šablon. Systém určuje, kterou šablonu použít, na základě přítomnosti stylu OFN_EXPLORER a operačního systému, na kterém aplikace běží. Zadáním šablony bez Průzkumníka a Průzkumníka je snadné podporovat systém Windows NT 3.51, systém Windows NT 4.0 a novějších verzích a Windows 95 a novějších verzích.

Poznámka:

Dialogová okna souborů se systémem Windows Vista nebo novějším stylem tuto funkci nepodporují. Při pokusu o použití této funkce v dialogovém okně souboru se systémem Windows Vista nebo novější styl vyvolá CNotSupportedException. Alternativou je použití přizpůsobeného dialogového okna. Další informace o použití vlastního CFileDialogsouboru naleznete v tématu IFileDialogCustomize.

CFileDialog::StartVisualGroup

Deklaruje skupinu vizuálů v dialogovém okně. Následná volání jakékoli metody add tyto prvky do této skupiny přidá.

HRESULT StartVisualGroup(
    DWORD dwIDCtl,
    const CString& strLabel);

Parametry

dwIDCtl
ID skupiny vizuálů.

strLabel
Název skupiny.

Poznámky

CFileDialog::UpdateOFNFromShellDialog

m_ofn Aktualizuje datovou strukturu CFileDialog na základě aktuálního stavu interního objektu.

void UpdateOFNFromShellDialog();

Poznámky

Ve verzích windows před Windows Vista, člen OPENFILENAME datové struktury byl nepřetržitě synchronizován se stavem CFileDialog. Všechny změny m_ofn členské proměnné přímo ovlivnily stav dialogového okna. Všechny změny stavu dialogového okna se také okamžitě aktualizovaly m_ofn členské proměnné.

V systému Windows Vista nebo novější není m_ofn datová struktura automaticky aktualizována. Pokud chcete zaručit přesnost dat v m_ofn členské proměnné, měli byste funkci před přístupem k datům volat UpdateOFNFromShellDialog . Systém Windows volá tuto funkci automaticky během zpracování IFileDialog::OnFileOK.

Další informace o použití CFileDialog třídy v systému Windows Vista nebo novější naleznete v tématu CFileDialog Třída.

Příklad

Tento příklad aktualizuje CFileDialog před zobrazením. Před aktualizací m_ofn členské proměnné ji musíme synchronizovat s aktuálním stavem dialogového okna.

// Update the m_ofn variable
m_myFileDialogPtr->UpdateOFNFromShellDialog();

// Change the title
m_myFileDialogPtr->m_ofn.lpstrTitle = L"New Dialog Title";

// Apply the changes
m_myFileDialogPtr->ApplyOFNToShellDialog();

// Show the window
LRESULT result = m_myFileDialogPtr->DoModal();

Viz také

CCommonDialog – třída
Graf hierarchie