Megosztás a következőn keresztül:


CFileDialog osztály

Megjegyzés:

A Microsoft Foundation Classes (MFC) könyvtár továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.

Beágyazza a fájlmegnyitási vagy fájlmentési műveletekhez használt gyakori párbeszédpanelt.

Szemantika

class CFileDialog : public CCommonDialog

Tagok

Nyilvános konstruktorok

Név Description
CFileDialog::CFileDialog Egy CFileDialog objektumot hoz létre.

Nyilvános metódusok

Név Description
CFileDialog::AddCheckButton Pipa gombot ad hozzá a párbeszédpanelhez.
CFileDialog::AddComboBox Kombinált lista hozzáadása a párbeszédpanelhez.
CFileDialog::AddControlItem Elemet ad hozzá egy tárolóvezérlőhöz a párbeszédpanelen.
CFileDialog::AddEditBox Szerkesztési mező hozzáadása a párbeszédpanelhez.
CFileDialog::AddMenu Menü hozzáadása a párbeszédpanelhez.
CFileDialog::AddPlace Túlterhelt. Hozzáad egy mappát az elemek megnyitásához vagy mentéséhez a felhasználó számára elérhető helyek listájához.
CFileDialog::AddPushButton Gomb hozzáadása a párbeszédpanelhez.
CFileDialog::AddRadioButtonList Hozzáad egy választógombot (más néven választógombot) a párbeszédpanelhez.
CFileDialog::AddSeparator Elválasztó hozzáadása a párbeszédpanelhez.
CFileDialog::Szöveg hozzáadása Szöveges tartalom hozzáadása a párbeszédpanelhez.
CFileDialog::ApplyOFNToShellDialog Frissíti az állapotot, CFileDialog hogy megfeleljen a tagváltozóban tárolt paramétereknek és jelzőknek m_ofn .
CFileDialog::D oModal Megjeleníti a párbeszédpanelt, és lehetővé teszi a felhasználó számára a kijelölést.
CFileDialog::EnableOpenDropDown Engedélyezi a legördülő listát a párbeszédpanel Megnyitás vagy Mentés gombján.
CFileDialog::EndVisualGroup Leállítja az elemek hozzáadását egy vizualizációcsoporthoz a párbeszédpanelen.
CFileDialog::GetCheckButtonState A párbeszédpanelen beolvasja a pipagomb aktuális állapotát (jelölőnégyzet).
CFileDialog::GetControlItemState Lekéri egy elem aktuális állapotát a párbeszédpanelen található tárolóvezérlőben.
CFileDialog::GetControlState Lekéri egy adott vezérlőelem aktuális láthatóságát és engedélyezett állapotát.
CFileDialog::GetEditBoxText Beolvasja az aktuális szöveget egy szerkesztési mező vezérlőelemben.
CFileDialog::GetFileExt A kijelölt fájl bővítményét adja vissza.
CFileDialog::GetFileName A kijelölt fájl nevét adja vissza.
CFileDialog::GetFileTitle A kijelölt fájl címét adja vissza.
CFileDialog::GetFolderPath Lekéri a jelenleg megnyitott mappa vagy könyvtár elérési útját egy Explorer-stílusú Megnyitás vagy Mentés másként párbeszédpanelen.
CFileDialog::GetIFileDialogCustomize Lekéri egy testre szabott CFileDialog objektum belső COM-objektumát.
CFileDialog::GetIFileOpenDialog Lekéri a megnyitási fájl párbeszédpanelként használt belső COM-objektumotCFileDialog.
CFileDialog::GetIFileSaveDialog Lekéri a fájl mentése párbeszédpanelként használt belső COM-objektumotCFileDialog.
CFileDialog::GetNextPathName A következő kijelölt fájl teljes elérési útját adja vissza.
CFileDialog::GetOFN Lekéri az OPENFILENAME objektum szerkezetét CFileDialog .
CFileDialog::GetPathName A kijelölt fájl teljes elérési útját adja vissza.
CFileDialog::GetReadOnlyPref A kijelölt fájl írásvédett állapotát adja vissza.
CFileDialog::GetResult Lekéri a felhasználó által a párbeszédpanelen megadott lehetőséget.
CFileDialog::GetResults A felhasználó választási lehetőségeit egy olyan párbeszédpanelen kapja meg, amely több kijelölést tesz lehetővé.
CFileDialog::GetSelectedControlItem Egy adott elem lekéri a megadott tárolóvezérlőkből a párbeszédpanelen.
CFileDialog::GetStartPosition A fájlnévlista első elemének pozícióját adja vissza.
CFileDialog::HideControl Elrejti a megadott vezérlőelemet egy Explorer-stílusú Megnyitás vagy Mentés másként párbeszédpanelen.
CFileDialog::IsPickFoldersMode Meghatározza, hogy az aktuális párbeszédpanel mappaválasztó módban van-e.
CFileDialog::MakeProminent Egy vezérlőt helyez el a párbeszédpanelen, hogy az a többi hozzáadott vezérlőhöz képest kiemelkedjen.
CFileDialog::RemoveControlItem Eltávolít egy elemet egy tárolóvezérlőből a párbeszédpanelen.
CFileDialog::SetCheckButtonState Beállítja a jelölőnégyzet aktuális állapotát a párbeszédpanelen.
CFileDialog::SetControlItemState Beállítja egy elem aktuális állapotát a párbeszédpanelen található tárolóvezérlőben.
CFileDialog::SetControlItemText Beállítja egy vezérlőelem szövegét. Például az a szöveg, amely egy választógombot vagy egy menü egy elemét kíséri.
CFileDialog::SetControlLabel Beállítja a vezérlőelemhez társított szöveget, például a gombszöveget vagy a szerkesztési mező címkéjét.
CFileDialog::SetControlState Egy adott vezérlőelem aktuális láthatóságát és engedélyezett állapotát állítja be.
CFileDialog::SetControlText A megadott vezérlőelem szövegét egy Explorer-stílusú Megnyitás vagy Mentés másként párbeszédpanelen állítja be.
CFileDialog::SetDefExt Beállítja az alapértelmezett fájlnévkiterjesztést egy Explorer-stílusú Megnyitás vagy Mentés másként párbeszédpanelhez.
CFileDialog::SetEditBoxText Beállítja az aktuális szöveget egy szerkesztési mező vezérlőelemben.
CFileDialog::SetProperties Egy tulajdonságtárolót biztosít, amely meghatározza a mentett elemhez használandó alapértelmezett értékeket.
CFileDialog::SetSelectedControlItem Beállítja egy adott elem kijelölt állapotát egy választógombcsoportban vagy a párbeszédpanelen található kombinált listából.
CFileDialog::SetTemplate Beállítja az objektum párbeszédpanelsablonját CFileDialog .
CFileDialog::StartVisualGroup Vizualizációcsoport deklarálása a párbeszédpanelen. Bármely "add" metódus későbbi hívásai hozzáadják ezeket az elemeket ehhez a csoporthoz.
CFileDialog::UpdateOFNFromShellDialog Frissíti a tagváltozóban m_ofn tárolt adatokat, hogy megfeleljenek a fájl párbeszédpanel aktuális állapotának.

Védett metódusok

Név Description
CFileDialog::OnButtonClicked A gomb kattintáskor hívható meg.
CFileDialog::OnCheckButtonToggled Akkor van meghívva, ha a jelölőnégyzet be van jelölve/nincs bejelölve.
CFileDialog::OnControlActivating A vezérlő aktív állapotában van meghívva.
CFileDialog::OnFileNameChange Kezeli a WM_NOTIFY CDN_SELCHANGE üzenetet.
CFileDialog::OnFileNameOK Ellenőrzi a párbeszédpanelen megadott fájlnevet.
CFileDialog::OnFolderChange Kezeli a WM_NOTIFY CDN_FOLDERCHANGE üzenetet.
CFileDialog::OnInitDone Kezeli a WM_NOTIFY CDN_INITDONE üzenetet.
CFileDialog::OnItemSelected A tárolóelem kiválasztásakor hívjuk meg.
CFileDialog::OnLBSelChangedNotify Lehetővé teszi egyéni műveletek végrehajtását a fájlkijelölés módosításakor.
CFileDialog::OnShareViolation Kezeli a megosztási szabálysértéseket.
CFileDialog::OnTypeChange Kezeli a WM_NOTIFY CDN_TYPECHANGE üzenetet.

Nyilvános adatok tagjai

Név Description
CFileDialog::m_ofn A Windows-struktúra OPENFILENAME . Hozzáférést biztosít az alapszintű fájl párbeszédpanel-paraméterekhez.

Megjegyzések

A gyakori fájl párbeszédpanelek lehetővé teszik a fájlkijelölési párbeszédpanelek (például a Fájl megnyitása és a Mentés másként) megvalósítását a Windows szabványainak megfelelően.

CFileDialog Használhatja a megadott konstruktorhoz hasonlóan, vagy saját párbeszédpanel-osztályt is létrehozhat, CFileDialog és igény szerint írhat konstruktort. Mindkét esetben ezek a párbeszédpanelek szabványos MFC-párbeszédpanelekhez hasonlóan fognak viselkedni, mivel a CCommonDialog osztályból származnak. CFileDialog a Windowsban található COMMDLG.DLL fájlra támaszkodik.

A Windows Vista vagy újabb verziók megjelenése és funkciói CFileDialog is eltérnek a Windows korábbi verzióitól. Az alapértelmezett beállítás CFileDialog automatikusan az új Windows Vista vagy újabb stílust használja kódmódosítások nélkül, ha egy program fordítása és futtatása Windows Vista vagy újabb rendszerben történik. Az automatikus frissítés manuális felülbírálásához használja a konstruktor bVistaStyle paraméterét. Az automatikus frissítés kivétele a testreszabott párbeszédpanelek. Ezek nem lesznek átalakítva az új stílusra. A konstruktorról további információt a CFileDialog::CFileDialog című témakörben talál.

Megjegyzés:

A vezérlőazonosító-rendszer a Windows Vista vagy újabb verziókban különbözik a Windows korábbi verzióitól.CFileDialog Frissítenie kell a kód vezérlőire CFileDialog mutató összes hivatkozást, mielőtt a projektet a Windows egy korábbi verziójából portozhatja.

A Windows Vista vagy újabb verziók nem támogatnak bizonyos CFileDialog metódusokat. Az egyes metódusok témakörében további információt talál arról, hogy a metódus támogatott-e. Ezenkívül a Windows Vista vagy újabb verziók nem támogatják az alábbi öröklődő függvényeket:

Az osztály windowsos üzenetei a CFileDialog használt operációs rendszertől függően változnak. A Windows XP például nem támogatja a CDialog::OnCancel és CDialog::OnOK az CFileDialog osztályhoz. A Windows Vista és a későbbi operációs rendszerek azonban támogatják őket. A különböző létrehozott üzenetekről és azok beérkezésének sorrendjéről további információt a CFileDialog Minta: Naplózási eseménysorrend című témakörben talál.

Objektum használatához CFileDialog először hozza létre az objektumot a CFileDialog konstruktor használatával. A párbeszédpanel létrehozása után a CFileDialog::m_ofn struktúrában bármilyen értéket beállíthat vagy módosíthat a párbeszédpanel-vezérlők értékeinek vagy állapotainak inicializálásához. A m_ofn struktúra típusa OPENFILENAME. További információ: OPENFILENAME struktúra a Windows SDK-ban.

A párbeszédpanel vezérlőinek inicializálása után hívja meg a CFileDialog::D oModal metódust a párbeszédpanel megjelenítéséhez, hogy a felhasználó be tudja gépelni az elérési utat és a fájlnevet. DoModal visszaadja, hogy a felhasználó az OK (IDOK) vagy a Mégse (IDCANCEL) gombra kattintott-e. Ha DoModal idokot ad vissza, a felhasználó által megadott információk lekéréséhez használhatja az CFileDialog egyik nyilvános tagfüggvényt.

Megjegyzés:

A Windows Vista vagy újabb verziókban az IFileDialog::SetFileTypes hívásai hibát okoznak. A második hívás SetFileTypes egy példányra CFileDialog E_UNEXPECTED a Windows Vista vagy újabb verziókban. Egyes CFileDialog metódusfüggvények hívása SetFileTypes. Például két hívás CFileDialog::DoModal ugyanarra a példányra, amely CFileDialog a ASSERT-t generálja.

CFileDialog Számos védett tagot tartalmaz, amelyek lehetővé teszik a megosztási szabálysértések egyéni kezelését, a fájlnevek érvényesítését és a listaváltás értesítését. Ezek a védett tagok olyan visszahívási függvények, amelyeket a legtöbb alkalmazásnak nem kell használnia, mert az alapértelmezett kezelés automatikusan megtörténik. Ezekhez a függvényekhez nincs szükség üzenettérkép-bejegyzésekre, mert ezek szabványos virtuális függvények.

A Windows CommDlgExtendedError függvénnyel megállapíthatja, hogy hiba történt-e a párbeszédpanel inicializálása során, és további információt kaphat a hibáról.

A rendszer automatikusan kezeli az CFileDialog objektumok megsemmisítését. Nem kell meghívnia a CDialog::EndDialog parancsot.

Ha azt szeretné, hogy a felhasználó több fájlt jelöljön ki, a hívás DoModalelőtt állítsa be a OFN_ALLOWMULTISELECT jelzőt. A több fájlnév visszaadott listájának elhelyezéséhez saját fájlnévpuffert kell megadnia. Ezt úgy teheti meg, hogy a lefoglalt pufferre mutató mutatóra cseréli m_ofn.lpstrFile a műveletet a CFileDialogkonstrukció után, de a hívás DoModalelőtt.

Emellett a pufferben m_ofn.lpstrFilelévő karakterek számát is be kell állítaniam_ofn.nMaxFile. Ha a kijelölendő fájlok maximális számát állítja be n, a szükséges pufferméret a következő n * (_MAX_PATH + 1) + 1. A pufferben visszaadott első elem annak a mappának az elérési útja, amelyben a fájlok ki lettek választva. Windows Vista vagy újabb stílusú párbeszédpanelek esetén a címtár és a fájlnév sztringjei null értékűek, a vezetéknév után pedig egy extra null karakterrel. Ez a formátum lehetővé teszi, hogy az Explorer-stílusú párbeszédpanelek szóközöket tartalmazó hosszú fájlneveket adjanak vissza. A régi stílusú párbeszédpanelek esetében a könyvtár és a fájlnév sztringjei szóközökkel vannak elválasztva, a függvény pedig rövid fájlneveket használ a szóközökkel rendelkező fájlnevekhez.

Az alábbi példa bemutatja, hogyan használható puffer több fájlnév lekérésére és listázására.

#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++;
  }
}

Ha módosítani szeretné a puffer méretét arra a felhasználóra válaszul, aki több fájlnevet jelöl ki, új osztályt CFileDialog kell létrehoznia, és felül kell bírálnia a CFileDialog::OnFileNameChange metódust.

Ha új osztályt hoz létre, CFileDialogegy üzenettérkép használatával kezelheti az üzeneteket. Az alapértelmezett üzenetkezelés kibővítéséhez származtassunk egy osztályt CFileDialog, adjunk hozzá egy üzenettérképet az új osztályhoz, és biztosítsunk tagfüggvényeket az új üzenetekhez. A párbeszédpanel testreszabásához nem kell megadnia egy horogfüggvényt.

A párbeszédpanel testreszabásához származtasson egy osztályt CFileDialog, adjon meg egy egyéni párbeszédpanelsablont, és adjon hozzá egy üzenettérképet a kiterjesztett vezérlők értesítési üzeneteinek feldolgozásához. A feldolgozatlan üzenetek továbbítása az alaposztálynak. Nem kell testre szabnia a horogfüggvényt.

Ha a Windows Vista vagy újabb stílust CFileDialoghasználja, nem használhat üzenettérképeket és párbeszédpanelsablonokat. Ehelyett a COM-felületeket kell használnia a hasonló funkciókhoz.

A használatról CFileDialogtovábbi információt a Gyakori párbeszédpanel-osztályok című témakörben talál.

Öröklési hierarchia

CObject

CCmdTarget

CWnd

CDialog

CCommonDialog

CFileDialog

Requirements

Fejléc: afxdlgs.h

CFileDialog::AddCheckButton

Pipa gombot ad hozzá a párbeszédpanelhez.

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

Paraméterek

dwIDCtl
A hozzáadni kívánt ellenőrző gomb azonosítója.

strLabel
Az ellenőrző gomb neve.

b Bejelölve
Az ellenőrző gomb aktuális állapotát jelző logikai érték. IGAZ, ha be van jelölve; HAMIS egyéb esetben

Megjegyzések

CFileDialog::AddComboBox

Kombinált lista hozzáadása a párbeszédpanelhez.

HRESULT AddComboBox(DWORD dwIDCtl);

Paraméterek

dwIDCtl
A hozzáadni kívánt kombinált lista azonosítója.

Megjegyzések

CFileDialog::AddControlItem

Elemet ad hozzá egy tárolóvezérlőhöz a párbeszédpanelen.

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

Paraméterek

dwIDCtl
Annak a tárolóvezérlőnek az azonosítója, amelybe hozzá szeretné adni az elemet.

dwIDItem
Az elem azonosítója.

strLabel
Elem szövege.

Megjegyzések

CFileDialog::AddEditBox

Szerkesztési mező hozzáadása a párbeszédpanelhez.

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

Paraméterek

dwIDCtl
A hozzáadni kívánt szerkesztési mező azonosítója.

strText
A szerkesztőmező neve.

Megjegyzések

CFileDialog::AddMenu

Menü hozzáadása a párbeszédpanelhez.

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

Paraméterek

dwIDCtl
A hozzáadni kívánt menü azonosítója.

strLabel
A menü neve.

Megjegyzések

CFileDialog::AddPlace

Hozzáad egy mappát az elemek megnyitásához vagy mentéséhez a felhasználó számára elérhető helyek listájához.

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

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

Paraméterek

lpszFolder
A felhasználó számára elérhetővé tenni kívánt mappa elérési útja. Ez csak egy mappa lehet.

fdap
Itt adhatja meg, hogy a mappa hol legyen elhelyezve a listában.

Psi
Egy IShellItemre mutató mutató, amely a felhasználó számára elérhetővé tenni kívánt mappát jelöli. Ez csak egy mappa lehet.

Megjegyzések

CFileDialog::AddPushButton

Gomb hozzáadása a párbeszédpanelhez.

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

Paraméterek

dwIDCtl
A hozzáadni kívánt gomb azonosítója.

strLabel
A gomb neve.

Megjegyzések

CFileDialog::AddRadioButtonList

Hozzáad egy választógombot (más néven választógombot) a párbeszédpanelhez.

HRESULT AddRadioButtonList(DWORD dwIDCtl);

Paraméterek

dwIDCtl
A hozzáadni kívánt választógombcsoport azonosítója.

Megjegyzések

CFileDialog::AddSeparator

Elválasztó hozzáadása a párbeszédpanelhez.

HRESULT AddSeparator(DWORD dwIDCtl);

Paraméterek

dwIDCtl
Az elválasztó hozzáadása.

Megjegyzések

CFileDialog::Szöveg hozzáadása

Szöveget ad hozzá a párbeszédpanelhez.

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

Paraméterek

dwIDCtl
A hozzáadni kívánt szöveg azonosítója.

strText
A szöveg neve.

Megjegyzések

CFileDialog::ApplyOFNToShellDialog

Frissíti a CFileDialog aktuális állapotát az adatstruktúrában m_ofn tárolt értékek alapján.

void ApplyOFNToShellDialog();

Megjegyzések

A Windows Windows Vista előtti verzióiban a tag OPENFILENAME adatstruktúrája folyamatosan szinkronizálva lett a CFileDialogrendszer állapotával. A m_ofn tagváltozó módosításai azonnal megjelennek a párbeszédpanel állapotában. Emellett a párbeszédpanel állapotának bármilyen módosítása azonnal frissíti a tagváltozót m_ofn .

Windows Vista vagy újabb rendszerben a m_ofn tagváltozóban és az állapotban CFileDialog lévő értékek nem garantáltan szinkronizálódnak. Ez a függvény arra kényszeríti CFileDialog a frissíteni kívánt állapotot, hogy megfeleljen a szerkezetnek m_ofn . A Windows automatikusan meghívja ezt a függvényt a CFileDialog::D oModal során.

Az osztály Windows Vista vagy újabb rendszerben való használatáról további információt a CFileDialogCFileDialog osztályban talál.

Example

Lásd a CFileDialog::UpdateOFNFromShellDialog példát.

CFileDialog::CFileDialog

A függvény meghívása szabványos Windows-fájl párbeszédpanel létrehozásához.

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);

Paraméterek

bOpenFileDialog
[in] A létrehozandó párbeszédpanel típusát meghatározó paraméter. Állítsa TRUE értékre a Fájlmegnyitás párbeszédpanel létrehozásához. Állítsa HAMIS értékre a Fájl mentése másként párbeszédpanel létrehozásához.

lpszDefExt
[in] Az alapértelmezett fájlnévkiterjesztés. Ha a felhasználó nem tartalmaz ismert kiterjesztést (amely társítással rendelkezik a felhasználó számítógépén) a Fájlnév mezőben, az lpszDefExt által megadott bővítmény automatikusan hozzá lesz fűzve a fájl nevéhez. Ha ez a paraméter NULL, a program nem fűz hozzá bővítményt.

lpszFileName
[in] A Fájlnév mezőben megjelenő kezdeti fájlnév. Null érték esetén nem jelenik meg a kezdeti fájlnév.

dwFlags
[in] Egy vagy több jelölő kombinációja, amellyel testre szabhatja a párbeszédpanelt. A jelzők leírását a Windows SDK OPENFILENAME struktúrájában talál. Ha módosítja a m_ofn.Flags struktúratagot, bitenkénti VAGY operátorral tartsa érintetlenül az alapértelmezett viselkedést.

lpszFilter
[in] A fájlra alkalmazható szűrőket meghatározó sztringpárok sorozata. Ha fájlszűrőket ad meg, csak a szűrési feltételeknek megfelelő fájlok jelennek meg a Fájlok listában. A fájlszűrők használatáról további információt a Megjegyzések szakaszban talál.

pParentWnd
[in] A fájl párbeszédpanel szülő- vagy tulajdonosablakára mutató mutató.

dwSize
[in] A szerkezet mérete OPENFILENAME . Ez az érték az operációs rendszer verziójától függ. Az MFC ezt a paramétert használta a létrehozandó párbeszédpanel megfelelő típusának meghatározásához. Az alapértelmezett 0 méret azt jelenti, hogy az MFC-kód határozza meg a megfelelő párbeszédpanel-méretet az operációs rendszer azon verziója alapján, amelyen a program fut.

bVistaStyle
[in] Megjegyzés Ez a paraméter a Visual Studio 2008-ban és újabb verzióiban érhető el, és az új stílusú párbeszédpanelt csak Windows Vista vagy újabb rendszereken futtatva használja.

A fájl párbeszédpanel stílusát meghatározó paraméter. Állítsa TRUE értékre az új Vista-stílusú fájl párbeszédpanelek használatához. Ellenkező esetben a párbeszédpanelek régi stílusa lesz használva. A Vista alatti futtatásról további információt a Megjegyzések szakaszban talál.

Megjegyzések

A fájlmegnyitás vagy a Fájl mentése másként párbeszédpanel a bOpenFileDialog értékétől függően jön létre.

Az alapértelmezett bővítmény lpszDefExt használatával történő megadása nem feltétlenül hozza létre a várt viselkedést, mivel ritkán kiszámítható, hogy a bővítmények milyen fájltársításokkal rendelkeznek a felhasználó számítógépén. Ha több vezérlésre van szüksége az alapértelmezett bővítmények hozzáfűzése felett, saját osztályt hozhat létre, CFileDialogés felülbírálhatja a CFileDialog::OnFileNameOK metódust a saját bővítménykezelés végrehajtásához.

Ha engedélyezni szeretné, hogy a felhasználó több fájlt jelöljön ki, állítsa be a OFN_ALLOWMULTISELECT jelzőt a DoModal hívása előtt. A több fájlnév visszaadott listájának tárolásához saját fájlnévpuffert kell megadnia. Ezt úgy m_ofn.lpstrFile teheti meg, hogy a CFileDialog létrehozása után, de a hívás DoModalelőtt lecseréli a lefoglalt pufferre mutató mutatót. Emellett meg kell adnia m_ofn.nMaxFile a pufferben m_ofn.lpstrFilelévő karakterek számát is. Ha az n értékre kijelölendő fájlok maximális számát állítja be, a szükséges pufferméret n*(_MAX_PATH + 1) + 1. Például:

#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++;
  }
}

Ha engedélyezni szeretné, hogy a felhasználó az egérrel vagy a billentyűzettel átméretezhessen egy Explorer-stílusú párbeszédpanelt, állítsa be a OFN_ENABLESIZING jelzőt. A jelző beállítása csak akkor szükséges, ha horog eljárást vagy egyéni sablont ad meg. A jelölő csak explorer stílusú párbeszédpanellel működik; a régi stílusú párbeszédpanelek nem méretezhetők át.

Az lpszFilter paraméterrel határozza meg, hogy a fájlnak milyen típusú fájlnevet kell megjelenítenie a fájllistában. A sztringpár első sztringje a szűrőt írja le; a második sztring a használni kívánt fájlnévkiterjesztést jelzi. Több bővítmény is megadható pontosvesszővel (a ";" karakterrel) elválasztóként. A sztring két függőleges sáv karakterrel végződik(||), majd egy NULL karakterrel. Ehhez a paraméterhez CString objektumot is használhat.

A Microsoft Excel például lehetővé teszi, hogy a felhasználók többek között .xlc (diagram) vagy .xls (munkalap) kiterjesztésű fájlokat nyissanak meg. Az Excel szűrője a következőképpen írható:

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

Ha azonban ezt a sztringet szeretné használni a OPENFILENAME struktúra közvetlen frissítéséhez, a sztringeket a függőleges sávok ('|') helyett null karakterrel '\0'kell elválasztani.

A bVistaStyle paraméter csak Windows Vista vagy újabb rendszereken való futtatáskor alkalmazható. A Windows korábbi verzióiban ez a paraméter figyelmen kívül lesz hagyva. Ha a bVistaStyle értéke IGAZ, akkor a Program Visual Studio 2008 vagy újabb verziójával való fordításakor a program az új Vista stílusú Fájl párbeszédpanelt fogja használni. Ellenkező esetben a rendszer az előző MFC-stílusú fájl párbeszédpanelt használja.

A párbeszédpanelsablonok nem támogatottak a bVistaStyle-alapú párbeszédpaneleken

Example

Lásd a CFileDialog::D oModal példát.

CFileDialog::D oModal

Hívja meg ezt a függvényt a Windows közös fájl párbeszédpaneljének megjelenítéséhez, és engedélyezze a felhasználónak a fájlok és könyvtárak tallózását, és adjon meg egy fájlnevet.

virtual INT_PTR DoModal();

Visszaadott érték

IDOK vagy IDCANCEL. Az IDCANCEL visszaadásakor hívja meg a Windows CommDlgExtendedError függvényt annak megállapításához, hogy történt-e hiba.

Az IDOK és az IDCANCEL állandók, amelyek jelzik, hogy a felhasználó az OK vagy a Mégse gombot választotta-e.

Megjegyzések

Ha inicializálni szeretné a különböző fájl párbeszédpanel-beállításokat a m_ofn struktúra tagjainak beállításával, ezt a hívás DoModalelőtt, de a párbeszédpanel-objektum létrehozása után kell elvégeznie.

Ha például engedélyezni szeretné a felhasználónak, hogy több fájlt jelöljön ki, hívás előtt DoModalállítsa be a OFN_ALLOWMULTISELECT jelölőt, ahogyan az a jelen témakör kód példájában látható.

Amikor a felhasználó a párbeszédpanel OK vagy Mégse gombjára kattint, vagy a párbeszédpanel vezérlőmenüjében a Bezárás lehetőséget választja, a vezérlő visszakerül az alkalmazásba. Ezután meghívhat más tagfüggvényeket, hogy lekérje a felhasználói bemenetek beállításait vagy adatait a párbeszédpanelen.

DoModal egy olyan virtuális függvény, amely felül van bírálva az osztályból CDialog.

Example

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

Engedélyezi a legördülő listát a párbeszédpanel Megnyitás vagy Mentés gombján.

HRESULT EnableOpenDropDown(DWORD dwIDCtl);

Paraméterek

dwIDCtl
A legördülő lista azonosítója.

Megjegyzések

CFileDialog::EndVisualGroup

Leállítja az elemek hozzáadását egy vizualizációcsoporthoz a párbeszédpanelen.

HRESULT EndVisualGroup();

Visszaadott érték

Sikeres S_OK ad vissza; hibaértéket.

Megjegyzések

CFileDialog::GetCheckButtonState

Beolvassa a párbeszédpanelen található pipagomb (jelölőnégyzet) aktuális állapotát.

HRESULT GetCheckButtonState(
    DWORD dwIDCtl,
    BOOL& bChecked);

Paraméterek

dwIDCtl
A jelölőnégyzet azonosítója.

b Bejelölve
A jelölőnégyzet állapota. A TRUE (IGAZ) érték bejelölve; A HAMIS azt jelzi, hogy nincs bejelölve.

Megjegyzések

CFileDialog::GetControlItemState

Lekéri egy elem aktuális állapotát a párbeszédpanelen található tárolóvezérlőben.

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

Paraméterek

dwIDCtl
A tárolóvezérlő azonosítója.

dwIDItem
Az elem azonosítója.

dwState
Olyan változóra mutató hivatkozás, amely a CDCONTROLSTATE számbavételből egy további értéket fogad, amely a vezérlőelem aktuális állapotát jelzi.

Megjegyzések

CFileDialog::GetControlState

Lekéri egy adott vezérlőelem aktuális láthatóságát és engedélyezett állapotát.

HRESULT GetControlState(
    DWORD dwIDCtl,
    CDCONTROLSTATEF& dwState);

Paraméterek

dwIDCtl
A vezérlő azonosítója.

dwState
Olyan változóra mutató hivatkozás, amely egy vagy több értéket fogad a CDCONTROLSTATE számbavételből, amely a vezérlőelem aktuális állapotát jelzi.

Megjegyzések

CFileDialog::GetEditBoxText

Beolvassa az aktuális szöveget egy szerkesztési mező vezérlőelemben.

HRESULT GetEditBoxText(
    DWORD dwIDCtl,
    CString& strText);

Paraméterek

dwIDCtl
A szerkesztési mező azonosítója.

strText
A szöveges érték.

Megjegyzések

CFileDialog::GetFileExt

Hívja meg ezt a függvényt a párbeszédpanelen megadott fájlnév bővítményének lekéréséhez.

CString GetFileExt() const;

Visszaadott érték

A fájlnév kiterjesztése.

Megjegyzések

Ha például a megadott fájl neve DATA.TXT, GetFileExt akkor a "TXT" értéket adja vissza.

Ha m_ofn.Flags a OFN_ALLOWMULTISELECT jelző van beállítva, ez a sztring null értékű sztringek sorozatát tartalmazza, az első sztring a fájlcsoport könyvtárelérési útvonala, majd a felhasználó által kijelölt összes fájl neve. A fájl elérési útjainak lekéréséhez használja a GetStartPosition és a GetNextPathName tagfüggvényeket.

CFileDialog::GetFileName

Hívja meg ezt a függvényt a párbeszédpanelen megadott fájlnév nevének lekéréséhez.

CString GetFileName() const;

Visszaadott érték

A fájl neve.

Megjegyzések

A fájl neve tartalmazza az előtagot és a bővítményt is. Például a GetFileName "SZÖVEG" értéket adja vissza. DAT" a C:\FILES\TEXT.DAT fájlhoz.

Ha m_ofn.Flags rendelkezik a jelölőkészlettel, a fájl elérési útjának lekéréséhez hívja meg a OFN_ALLOWMULTISELECTGetStartPosition és a GetNextPathName nevet.

CFileDialog::GetFileTitle

Hívja meg ezt a függvényt a párbeszédpanelen megadott fájl címének lekéréséhez.

CString GetFileTitle() const;

Visszaadott érték

A fájl címe.

Megjegyzések

A fájl címe csak annak előtagját tartalmazza, az elérési út vagy a bővítmény nélkül. A C:\FILES\TEXT.DAT fájlhoz például GetFileTitle "TEXT" (SZÖVEG) értéket ad vissza.

Ha m_ofn.Flags a OFN_ALLOWMULTISELECT jelző van beállítva, ez a sztring null értékű sztringek sorozatát tartalmazza, az első sztring a fájlcsoport könyvtárelérési útvonala, majd a felhasználó által kijelölt összes fájl neve. Ezért a GetStartPosition és a GetNextPathName tagfüggvényekkel kérje le a következő fájlnevet a listában.

Example

Lásd a CFileDialog::D oModal példát.

CFileDialog::GetFolderPath

Hívja meg ezt a tagfüggvényt, hogy lekérje az Éppen megnyitott mappa vagy könyvtár elérési útját egy Explorer-stílusú Megnyitás vagy Mentés másként párbeszédpanelen.

CString GetFolderPath() const;

Visszaadott érték

Egy CString objektum, amely az aktuálisan megnyitott mappát vagy könyvtárat tartalmazza.

Megjegyzések

A párbeszédpanelnek OFN_EXPLORER stílussal kell létrejönnie; ellenkező esetben a metódus egy állítással meghiúsul.

Ezt a metódust csak a párbeszédpanel megjelenése közben hívhatja meg. A párbeszédpanel bezárása után ez a függvény már nem fog működni, és a metódus egy állítással meghiúsul.

CFileDialog::GetIFileDialogCustomize

Egy adott CFileDialog belső COM-objektumára mutató mutatót kér le.

IFileDialogCustomize* GetIFileDialogCustomize();

Visszaadott érték

A mutató a belső COM-objektumhoz a CFileDialog. Az Ön felelőssége, hogy ezt a mutatót megfelelően adja ki.

Megjegyzések

Ezt a függvényt csak Windows Vista vagy újabb rendszereken használhatja olyan objektummal, amelynek a bVistaStyle értéke IGAZ. Ha ezt a függvényt akkor használja, amikor a bVistaStyle HAMIS, a null értéket adja vissza kiadási módban, és hibakeresési módban ad vissza egy állítást.

A felülettel kapcsolatos további információkért lásd: IFileDialogCustomizeIFileDialogCustomize.

Example

Ez a példa beolvassa a belső COM-objektumot. A példakód futtatásához a Windows Vista vagy újabb verzióban kell lefordítania.

// 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

Egy adott CFileDialogcom-objektum belső COM-objektumára mutató mutatót kér le.

IFileOpenDialog* GetIFileOpenDialog();

Visszaadott érték

A mutató a belső COM-objektumhoz a CFileDialog. Az Ön felelőssége, hogy ezt a mutatót megfelelően adja ki.

Megjegyzések

Ezt a függvényt csak Windows Vista vagy újabb rendszereken használhatja olyan objektummal, amelynek a bVistaStyle értéke IGAZ. Ez a függvény NULL értéket ad vissza, ha a CFileDialog párbeszédpanel nem Megnyitás párbeszédpanel, vagy ha a bVistaStyle értéke HAMIS. Ebben az utolsó esetben a függvény csak kiadási módban adja vissza a NULL értéket – hibakeresési módban a függvény helyességi értéket ad vissza.

A felülettel kapcsolatos további információkért lásd: IFileOpenDialogIFileOpenDialog.

Example

Ez a példa beolvassa a belső COM-objektumot. A kód futtatásához a Windows Vista vagy újabb verzióban kell lefordítania.

// 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

Egy adott CFileDialogcom-objektum belső COM-objektumára mutató mutatót kér le.

IFileSaveDialog* GetIFileSaveDialog();

Visszaadott érték

A mutató a belső COM-objektumhoz a CFileDialog. Az Ön felelőssége, hogy ezt a mutatót megfelelően adja ki.

Megjegyzések

Ezt a függvényt csak Windows Vista vagy újabb rendszereken használhatja olyan objektummal, amelynek a bVistaStyle értéke IGAZ. Ez a függvény NULL értéket ad vissza, ha nem CFileDialogmentési párbeszédpanel, vagy ha a bVistaStyle értéke HAMIS. Ebben az utolsó esetben a függvény csak kiadási módban adja vissza a NULL értéket – hibakeresési módban a függvény helyességi értéket ad vissza.

További információ a IFileSaveDialog felületről: IFileSaveDialog.

Example

Ez a példa beolvassa a belső COM-objektumot. A példakód futtatásához a Windows Vista vagy újabb verzióban kell lefordítania.

// 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

Hívja meg ezt a függvényt, hogy lekérje a következő fájlnevet a párbeszédpanelen kijelölt csoportból.

CString GetNextPathName(POSITION& pos) const;

Paraméterek

pos
Egy korábbi GetNextPathName vagy GetStartPosition függvényhívás által visszaadott POZÍCIÓ értékre mutató hivatkozás. NULL érték, ha a lista vége el lett érve.

Visszaadott érték

A fájl teljes elérési útja.

Megjegyzések

A fájlnév elérési útja tartalmazza a fájl címét és a teljes könyvtár elérési útját. Például a GetNextPathName "C:\FILES\TEXT" értéket adja vissza. DAT" a C:\FILES\TEXT.DAT fájlhoz. A továbbítási ismétlési ciklusban akkor használható GetNextPathName , ha a kezdeti pozíciót egy hívással GetStartPositionhozza létre.

Ha a kijelölés csak egy fájlból áll, a rendszer visszaadja a fájlnevet.

CFileDialog::GetOFN

Lekéri a társított OPENFILENAME struktúrát.

const OPENFILENAME& GetOFN() const;

OPENFILENAME& GetOFN();

Visszaadott érték

OPENFILENAME struktúra.

Megjegyzések

A függvény második verziójával inicializálhatja a Fájlmegnyitás vagy Fájlmentés másként párbeszédpanel megjelenését a létrehozása után, de a tagfüggvénnyel való DoModal megjelenítés előtt. Beállíthatja például a lpstrTitle tagot m_ofn arra a feliratra, amelynek a párbeszédpanelt meg szeretné adni.

CFileDialog::GetPathName

A függvény meghívásával lekérheti a párbeszédpanelen megadott fájl teljes elérési útját.

CString GetPathName() const;

Visszaadott érték

A fájl teljes elérési útja.

Megjegyzések

A fájlnév elérési útja tartalmazza a fájl címét és a teljes könyvtár elérési útját. Például a GetPathName "C:\FILES\TEXT" értéket adja vissza. DAT" a C:\FILES\TEXT.DAT fájlhoz.

Ha m_ofn.Flags a OFN_ALLOWMULTISELECT jelölő van beállítva, ez a sztring null-teminated sztringek sorozatát tartalmazza, az első sztring a fájlcsoport könyvtárelérési útvonala, majd a felhasználó által kijelölt összes fájl neve. Ezért a GetStartPosition és a GetNextPathName tagfüggvényekkel kérje le a következő fájlnevet a listában.

Example

Lásd a CFileDialog::D oModal példát.

CFileDialog::GetReadOnlyPref

Hívja meg ezt a függvényt annak megállapításához, hogy az Írásvédett jelölőnégyzet be van-e jelölve a Windows standard Fájlmegnyitás és fájlmentés másként párbeszédpanelen.

BOOL GetReadOnlyPref() const;

Visszaadott érték

Nem nulla, ha a párbeszédpanel Írásvédett jelölőnégyzete be van jelölve; egyéb esetben 0.

Megjegyzések

Az Írásvédett jelölőnégyzet elrejthető a konstruktor OFN_HIDEREADONLY stílusának CFileDialog beállításával.

Megjegyzés:

A Windows Vista vagy újabb stílusú CFileDialog objektumok nem támogatják ezt a függvényt. Ha Windows Vista vagy újabb stílusban CFileDialog próbálja használni ezt a függvényt, akkor a CNotSupportedException parancs jelenik meg.

CFileDialog::GetResult

Lekéri a felhasználó által a párbeszédpanelen megadott lehetőséget.

IShellItem* GetResult() throw();

Visszaadott érték

A felhasználó által választott IShellItem mutatója.

Megjegyzések

CFileDialog::GetResults

Lekéri a felhasználó választási lehetőségeit egy olyan párbeszédpanelen, amely több kijelölést tesz lehetővé.

IShellItemArray* GetResults() throw();

Visszaadott érték

Egy IShellItemArray mutató, amelyen keresztül a párbeszédpanelen kijelölt elemek elérhetők.

Megjegyzések

CFileDialog::GetSelectedControlItem

Egy adott elemet kér le a párbeszédpanel megadott tárolóvezérlőjében.

HRESULT GetSelectedControlItem(
    DWORD dwIDCtl,
    DWORD& dwIDItem);

Paraméterek

dwIDCtl
A tárolóvezérlő azonosítója.

dwIDItem
Annak az elemnek az azonosítója, amelyet a felhasználó kiválasztott a vezérlőben.

Megjegyzések

CFileDialog::GetStartPosition

Hívja meg ezt a tagfüggvényt a listában szereplő első fájl elérési útjának pozíciójának lekéréséhez, ha m_ofn.Flags a OFN_ALLOWMULTISELECT jelző van beállítva.

POSITION GetStartPosition() const;

Visszaadott érték

Az iterációhoz használható POSITION érték; NULL érték, ha a lista üres.

CFileDialog::HideControl

Hívja meg ezt a tagfüggvényt, hogy elrejtse a megadott vezérlőt egy Explorer-stílusú Megnyitás vagy Mentés másként párbeszédpanelen.

void HideControl(int nID);

Paraméterek

nID
Az elrejtendő vezérlő azonosítója.

Megjegyzések

A párbeszédpanelnek OFN_EXPLORER stílussal kell létrejönnie; ellenkező esetben a függvény egy állítással meghiúsul.

CFileDialog::IsPickFoldersMode

Meghatározza, hogy az aktuális párbeszédpanel mappaválasztó módban van-e.

BOOL IsPickFoldersMode() const;

Visszaadott érték

IGAZ, ha a párbeszédpanel mappaválasztó módban van; egyéb esetben HAMIS.

Megjegyzések

CFileDialog::m_ofn

m_ofn A típusszerkezet OPENFILENAME. Az ebben a struktúrában lévő adatok a jelenlegi állapotot jelölik CFileDialog.

Megjegyzések

Ezzel a struktúrával inicializálhatja a Fájlmegnyitás vagy a Fájl mentése másként párbeszédpanel megjelenését a létrehozása után, de a DoModal metódussal való megjelenítés előtt. Beállíthatja például a lpstrTitle tagját m_ofn arra a feliratra, amelynek a párbeszédpanelt meg szeretné adni.

A CFileDialog Windows Vista vagy újabb stílusával nem garantált, m_ofn hogy mindig megegyezik a párbeszédpanel állapotával. A rendszer szinkronizálja a párbeszédpanellel a Windows korábbi verzióiban. A struktúra és az CFileDialog állapot Windows Vista vagy újabb rendszerben történő m_ofn szinkronizálásával kapcsolatos további információkért lásd: CFileDialog::ApplyOFNToShellDialog and CFileDialog::UpdateOFNFromShellDialog.

A Windows Vista vagy újabb stílusfájl párbeszédpaneljei nem támogatják a CFileDialog. Ennek eredményeképpen ezek nem lesznek hatással.

Az alábbiakban felsoroljuk azokat a tagokat, amelyeket a Windows Vista vagy újabb verziók nem támogatnak:

  • lpstrCustomFilter

  • lpstrInitialDir

  • lCustData

  • lpfnHook

  • lpTemplateName

A következő jelzők nem támogatottak, ezért a Windows Vista vagy újabb verziójú stílus CFileDialoghasználatakor nincs hatása:

  • OFN_ENABLEHOOK

  • OFN_ENABLEINCLUDENOTIFY

  • OFN_ENABLETEMPLATE

  • OFN_ENABLETEMPLATEHANDLE

  • OFN_EXPLORER

  • OFN_EXTENSIONDIFFERENT

  • OFN_HIDEREADONLY

  • OFN_LONGNAMES – hatékonyan mindig bekapcsolva Windows Vista vagy újabb verziókban

  • OFN_NOLONGNAMES – hatékonyan mindig kikapcsolva Windows Vista vagy újabb verziókban

  • OFN_NONETWORKBUTTON – hatékonyan mindig bekapcsolva Windows Vista vagy újabb verziókban

  • OFN_READONLY

  • OFN_SHOWHELP

Erről a struktúráról további információt a Windows SDK OPENFILENAME struktúrájában talál.

CFileDialog::MakeProminent

Egy vezérlőt helyez el a párbeszédpanelen, hogy a többi vezérlőhöz képest kiemelkedjen.

HRESULT MakeProminent(DWORD dwIDCtl);

Paraméterek

dwIDCtl
A vezérlő azonosítója.

Megjegyzések

CFileDialog::OnButtonClicked

A gomb kattintáskor hívható meg.

virtual void OnButtonClicked(DWORD dwIDCtl);

Paraméterek

dwIDCtl
A gomb azonosítója.

Megjegyzések

CFileDialog::OnCheckButtonToggled

A jelölőnégyzet bejelölésekor vagy jelölésének megszüntetésekor hívja meg a rendszer.

virtual void OnCheckButtonToggled(
    DWORD dwIDCtl,
    BOOL bChecked);

Paraméterek

dwIDCtl
A jelölőnégyzet azonosítója.

b Bejelölve
Bejelölve vagy törölve.

Megjegyzések

CFileDialog::OnControlActivating

A vezérlő aktiválásakor hívható meg.

virtual void OnControlActivating(DWORD dwIDCtl);

Paraméterek

dwIDCtl
A vezérlő azonosítója.

Megjegyzések

CFileDialog::OnFileNameChange

Bírálja felül ezt a metódust, ha kezelni szeretné a WM_NOTIFY CDN_SELCHANGE üzenetet.

virtual void OnFileNameChange();

Megjegyzések

A rendszer akkor küldi el a CDN_SELCHANGE üzenetet, amikor a felhasználó kiválaszt egy új fájlt vagy mappát a Megnyitás vagy Mentés másként párbeszédpanel fájllistájában. Bírálja felül ezt a metódust, ha bármilyen műveletet szeretne végrehajtani az üzenetre válaszul.

A rendszer csak akkor küldi el ezt az üzenetet, ha a párbeszédpanel úgy lett létrehozva, hogy be van kapcsolva a OFN_EXPLORER jelző. További információ az értesítésről: CDN_SELCHANGE. A OFN_EXPLORER jelzőről további információt az OPENFILENAME struktúra és a Megnyitás és mentés másként párbeszédpaneleken talál.

CFileDialog::OnFileNameOK

Ezt a függvényt csak akkor bírálja felül, ha a közös fájl párbeszédpanelen megadott fájlnevek egyéni érvényesítését szeretné biztosítani.

virtual BOOL OnFileNameOK();

Visszaadott érték

1, ha a fájlnév nem érvényes fájlnév; egyéb esetben 0.

Megjegyzések

Ez a függvény lehetővé teszi, hogy bármely alkalmazásspecifikus okból elutasítsa a fájlnevet. Ezt a függvényt általában nem kell használnia, mert a keretrendszer alapértelmezetten ellenőrzi a fájlneveket, és érvénytelen fájlnév beírása esetén megjelenít egy üzenetmezőt.

Ha 1 értéket ad vissza, a párbeszédpanel továbbra is megjelenik, hogy a felhasználó egy másik fájlnevet adjon meg. A párbeszédpanel eljárása elutasítja a párbeszédpanelt, ha a visszatérés 0. Az egyéb nemero visszatérési értékek jelenleg fenntartottak, és nem használhatók.

CFileDialog::OnFolderChange

Felülbírálja ezt a függvényt a WM_NOTIFYCDN_FOLDERCHANGE üzenet kezeléséhez.

virtual void OnFolderChange();

Megjegyzések

Az értesítési üzenet akkor lesz elküldve, ha egy új mappa meg van nyitva a Megnyitás vagy a Mentés másként párbeszédpanelen.

A rendszer csak akkor küld értesítést, ha a párbeszédpanel OFN_EXPLORER stílussal lett létrehozva. További információ az értesítésről: CDN_FOLDERCHANGE. A OFN_EXPLORER stílussal kapcsolatos információkért tekintse meg az OPENFILENAME struktúrát, valamint a Megnyitás és mentés másként párbeszédpanelt.

CFileDialog::OnInitDone

Felülbírálja ezt a függvényt a WM_NOTIFY CDN_INITDONE üzenet kezeléséhez.

virtual void OnInitDone();

Megjegyzések

A rendszer akkor küldi el ezt az értesítési üzenetet, ha a rendszer befejezte a vezérlők rendezését a Megnyitás vagy Mentés másként párbeszédpanelen, hogy helyet biztosítson a gyermek párbeszédpanel vezérlőinek.

A rendszer ezt csak akkor küldi el, ha a párbeszédpanel OFN_EXPLORER stílussal lett létrehozva. Az értesítéssel kapcsolatos további információkért lásd: CDN_INITDONE. A OFN_EXPLORER stílussal kapcsolatos információkért tekintse meg az OPENFILENAME struktúrát, valamint a Megnyitás és mentés másként párbeszédpanelt.

Megjegyzés:

A Windows Vista vagy újabb stílusú fájl párbeszédpanelek nem támogatják ezt a függvényt. Ha a függvényt Windows Vista vagy újabb stílusú fájl párbeszédpanelen próbálja használni, a CNotSupportedException parancs jelenik meg.

CFileDialog::OnItemSelected

A tárolóelem kijelölésekor hívjuk.

virtual void OnItemSelected(
    DWORD dwIDCtl,
    DWORD dwIDItem);

Paraméterek

dwIDCtl
A tárolóvezérlő azonosítója.

dwIDItem
Az elem azonosítója.

Megjegyzések

CFileDialog::OnLBSelChangedNotify

Ezt a függvényt akkor hívja meg a rendszer, ha a listamező aktuális kijelölése módosulni készül.

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

Paraméterek

nIDBox
Annak a listanek vagy kombinált listanek az azonosítója, amelyben a kijelölés történt.

iCurSel
Az aktuális kijelölés indexe.

nCode
A vezérlő értesítési kódja. Ennek a paraméternek a következő értékek egyikével kell rendelkeznie:

  • CD_LBSELCHANGE Meghatározza, hogy az iCurSel a kijelölt elem egy kijelölési listamezőben.

  • CD_LBSELSUB Azt adja meg, hogy az iCurSel már nincs kijelölve egy többválasztásos listamezőben.

  • CD_LBSELADD Azt adja meg, hogy az iCurSel ki van jelölve egy többválasztásos listában.

  • CD_LBSELNOITEMS Azt adja meg, hogy nincs kijelölés a többválasztásos listamezőben.

Megjegyzések

Felülbírálja ezt a függvényt, hogy egyénileg kezelje a kijelölés módosításait a listamezőben. Ezzel a függvénnyel megjelenítheti például a felhasználó által kiválasztott fájlok hozzáférési jogosultságait vagy utolsó módosításának dátumát.

CFileDialog::OnShareViolation

A függvény felülbírálása a megosztási szabálysértések egyéni kezelésének biztosításához.

virtual UINT OnShareViolation(LPCTSTR lpszPathName);

Paraméterek

lpszPathName
Annak a fájlnak az elérési útja, amelyen a megosztás megsértése történt.

Visszaadott érték

Az alábbi értékek egyike:

  • OFN_SHAREFALLTHROUGH A fájlnév a párbeszédpanelről lesz visszaadva.

  • OFN_SHARENOWARN Nem kell további lépéseket tenni.

  • OFN_SHAREWARN A felhasználó megkapja a hiba szokásos figyelmeztető üzenetét.

Megjegyzések

Általában nem kell ezt a függvényt használnia, mert a keretrendszer a megosztások megsértésének alapértelmezett ellenőrzését biztosítja, és egy üzenetmezőt jelenít meg, ha a megosztás megsértése történik.

Ha le szeretné tiltani a megosztások megsértésének ellenőrzését, használja a bitenkénti VAGY operátort a jelölő OFN_SHAREAWARE m_ofn.Flagskombinálásához.

CFileDialog::OnTypeChange

Felülbírálja ezt a függvényt a WM_NOTIFYCDN_TYPECHANGE üzenet kezeléséhez.

virtual void OnTypeChange();

Megjegyzések

Az értesítés akkor lesz elküldve, ha a felhasználó kiválaszt egy új fájltípust a Megnyitás vagy Mentés másként párbeszédpanel fájltípusainak listájából.

A rendszer csak akkor küld értesítést, ha a párbeszédpanel OFN_EXPLORER stílussal lett létrehozva. További információ az értesítésről: CDN_TYPECHANGE. A OFN_EXPLORER stílussal kapcsolatos információkért tekintse meg az OPENFILENAME struktúrát, valamint a Megnyitás és mentés másként párbeszédpanelt.

CFileDialog::RemoveControlItem

Eltávolít egy elemet egy tárolóvezérlőből a párbeszédpanelen.

HRESULT RemoveControlItem(
    DWORD dwIDCtl,
    DWORD dwIDItem);

Paraméterek

dwIDCtl
Az elem eltávolításához a tárolóvezérlő azonosítója.

dwIDItem
Az elem azonosítója.

Megjegyzések

CFileDialog::SetCheckButtonState

Beállítja a jelölőnégyzet aktuális állapotát a párbeszédpanelen.

HRESULT SetCheckButtonState(
    DWORD dwIDCtl,
    BOOL bChecked);

Paraméterek

dwIDCtl
A jelölőnégyzet azonosítója.

b Bejelölve
A jelölőnégyzet állapota. A TRUE (IGAZ) érték bejelölve; A HAMIS azt jelzi, hogy nincs bejelölve.

Megjegyzések

CFileDialog::SetControlItemState

Beállítja egy elem aktuális állapotát a párbeszédpanelen található tárolóvezérlőben.

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

Paraméterek

dwIDCtl
A tárolóvezérlő azonosítója.

dwIDItem
Az elem azonosítója.

dwState
A CDCONTROLSTATE-számbavétel egy vagy több olyan értéke, amely a vezérlő új állapotát jelzi.

Megjegyzések

CFileDialog::SetControlItemText

Beállítja egy vezérlőelem szövegét. Például az a szöveg, amely egy választógombot vagy egy menü egy elemét kíséri.

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

Paraméterek

dwIDCtl
A tárolóvezérlő azonosítója.

dwIDItem
Az elem azonosítója.

strLabel
Elem szövege.

Megjegyzések

CFileDialog::SetControlLabel

Beállítja a vezérlőelemhez társított szöveget, például a gombszöveget vagy a szerkesztési mező címkéjét.

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

Paraméterek

dwIDCtl
A vezérlő azonosítója.

strLabel
A vezérlő neve.

Megjegyzések

CFileDialog::SetControlState

Egy adott vezérlőelem aktuális láthatóságát és engedélyezett állapotát állítja be.

HRESULT SetControlState(
    DWORD dwIDCtl,
    CDCONTROLSTATEF dwState);

Paraméterek

dwIDCtl
A vezérlő azonosítója.

dwState
A CDCONTROLSTATE enumerálásból származó egy vagy több érték, amely a vezérlő aktuális állapotát jelzi.

Megjegyzések

CFileDialog::SetControlText

A metódus meghívásával beállíthatja a megadott vezérlőelem szövegét egy Explorer-stílusú Megnyitás vagy Mentés másként párbeszédpanelen.

void SetControlText(
    int nID,
    LPCSTR lpsz);

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

Paraméterek

nID
[in] Annak a vezérlőelemnek az azonosítója, amelyhez be szeretné állítani a szöveget.

lpsz
[in] A vezérlőelemhez beállított szöveget tartalmazó sztringre mutató mutató.

Megjegyzések

A függvény mindkét verziója érvényes a Unicode-ot használó alkalmazásokra. Azonban csak az LPCSTR típusú verzió érvényes az ANSI-t használó alkalmazásokra.

A metódus használatához létre kell hoznia a párbeszédpanelt OFN_EXPLORER stílussal. Ellenkező esetben a függvény egy állítással meghiúsul.

CFileDialog::SetDefExt

Hívja meg ezt a függvényt, hogy állítsa be az alapértelmezett fájlnévkiterjesztést egy Explorer-stílusú Megnyitás vagy Mentés másként közös párbeszédpanelhez.

void SetDefExt(LPCSTR lpsz);

Paraméterek

lpsz
Mutató egy sztringre, amely tartalmazza a párbeszédpanel-objektumhoz használni kívánt alapértelmezett bővítményt. Ez a sztring nem tartalmazhat pontot (.).

Megjegyzések

A párbeszédpanelnek OFN_EXPLORER stílussal kell létrejönnie; ellenkező esetben a függvény egy állítással meghiúsul.

CFileDialog::SetEditBoxText

Beállítja az aktuális szöveget egy szerkesztési mező vezérlőelemben.

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

Paraméterek

dwIDCtl
A szerkesztési mező azonosítója.

strText
A szöveges érték.

Megjegyzések

CFileDialog::SetProperties

Egy tulajdonságtárolót biztosít, amely meghatározza a mentett elemhez használandó alapértelmezett értékeket.

BOOL SetProperties(LPCWSTR lpszPropList);

Paraméterek

lpszPropList
Az ";" által elválasztott előre definiált tulajdonságok listája. A jelzők listáját az OPENFILENAMEJelzők szakaszában találja.

Megjegyzések

CFileDialog::SetSelectedControlItem

Beállítja egy adott elem kijelölt állapotát egy választógombcsoportban vagy a párbeszédpanelen található kombinált listából.

HRESULT SetSelectedControlItem(
    DWORD dwIDCtl,
    DWORD dwIDItem);

Paraméterek

dwIDCtl
A tárolóvezérlő azonosítója.

dwIDItem
Annak az elemnek az azonosítója, amelyet a felhasználó kiválasztott a vezérlőben.

Megjegyzések

CFileDialog::SetTemplate

Beállítja a CFileDialog objektum párbeszédpanelsablonját.

void SetTemplate(
    UINT nWin3ID,
    UINT nWin4ID);

void SetTemplate(
    LPCTSTR lpWin3ID,
    LPCTSTR lpWin4ID);

Paraméterek

nWin3ID
[in] A nem Explorer CFileDialog objektum sablonerőforrásának azonosítószámát tartalmazza. Ezt a sablont csak Windows NT 3.51 rendszeren használja, vagy ha a OFN_EXPLORER stílus nincs jelen.

nWin4ID
[in] Az Explorer-objektum CFileDialog sablonerőforrásának azonosítószámát tartalmazza. Ez a sablon csak Windows NT 4.0-s és újabb verziókban, Windows 95-ös és újabb verziókban, illetve OFN_EXPLORER stílus esetén használható.

lpWin3ID
[in] A nem Explorer CFileDialog objektum sablonerőforrásának nevét tartalmazza. Ezt a sablont csak Windows NT 3.51 rendszeren használja, vagy ha a OFN_EXPLORER stílus nincs jelen.

lpWin4ID
[in] Az Explorer-objektum CFileDialog sablonerőforrásának nevét tartalmazza. Ez a sablon csak Windows NT 4.0-s és újabb verziókban, Windows 95-ös és újabb verziókban, illetve OFN_EXPLORER stílus esetén használható.

Megjegyzések

A rendszer csak az egyik megadott sablont fogja használni. A rendszer a OFN_EXPLORER stílus és az alkalmazás által futtatott operációs rendszer jelenléte alapján határozza meg, hogy melyik sablont használja. Ha nem Explorer- és Explorer-stílusú sablont is megad, egyszerűen támogathatja a Windows NT 3.51- és Windows NT 4.0-s és újabb verzióit, valamint a Windows 95-ös és újabb verzióit.

Megjegyzés:

A Windows Vista vagy újabb stílusú fájl párbeszédpanelek nem támogatják ezt a függvényt. Ha a függvényt Windows Vista vagy újabb stílusú fájl párbeszédpanelen próbálja használni, a CNotSupportedException parancs jelenik meg. Másik lehetőségként használhat testre szabott párbeszédpanelt. Az egyéni CFileDialoghasználatról további információt az IFileDialogCustomize című témakörben talál.

CFileDialog::StartVisualGroup

Vizualizációcsoport deklarálása a párbeszédpanelen. Bármely "add" metódus későbbi hívásai hozzáadják ezeket az elemeket ehhez a csoporthoz.

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

Paraméterek

dwIDCtl
A vizualizációcsoport azonosítója.

strLabel
A csoport neve.

Megjegyzések

CFileDialog::UpdateOFNFromShellDialog

Frissíti a m_ofnCFileDialog adatstruktúráját a belső objektum aktuális állapota alapján.

void UpdateOFNFromShellDialog();

Megjegyzések

A Windows Windows Vista előtti verzióiban a tag OPENFILENAME adatstruktúrája folyamatosan szinkronizálva lett a CFileDialogrendszer állapotával. A m_ofn tagváltozó módosításai közvetlenül befolyásolták a párbeszédpanel állapotát. Emellett a párbeszédpanel állapotának bármilyen módosítása azonnal frissítette a m_ofn tagváltozót.

Windows Vista vagy újabb rendszerben az m_ofn adatstruktúra nem frissül automatikusan. A tagváltozóban lévő m_ofn adatok pontosságának biztosítása érdekében az adatok elérése előtt meg kell hívnia a UpdateOFNFromShellDialog függvényt. A Windows automatikusan meghívja ezt a függvényt az IFileDialog::OnFileOK feldolgozása során.

Az osztály Windows Vista vagy újabb rendszerben való használatáról további információt a CFileDialogCFileDialog osztályban talál.

Example

Ez a példa a megjelenítés előtt frissíti a CFileDialog frissítést. A tagváltozó m_ofn frissítése előtt szinkronizálni kell azt a párbeszédpanel aktuális állapotával.

// 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();

Lásd még

CCommonDialog osztály
hierarchiadiagram