Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Opmerking
De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
Hiermee wordt het algemene dialoogvenster ingekapseld dat wordt gebruikt voor bewerkingen voor het openen van bestanden of het opslaan van bestanden.
Syntaxis
class CFileDialog : public CCommonDialog
Leden
Openbare constructors
| Naam | Description |
|---|---|
| CFileDialog::CFileDialog | Maakt een CFileDialog object. |
Openbare methoden
| Naam | Description |
|---|---|
| CFileDialog::AddCheckButton | Hiermee voegt u een vinkje toe aan het dialoogvenster. |
| CFileDialog::AddComboBox | Hiermee voegt u een keuzelijst met invoervak toe aan het dialoogvenster. |
| CFileDialog::AddControlItem | Voegt een item toe aan een containerbesturing in het dialoogvenster. |
| CFileDialog::AddEditBox | Hiermee voegt u een invoervak toe aan het dialoogvenster. |
| CFileDialog::Menu Toevoegen | Hiermee voegt u een menu toe aan het dialoogvenster. |
| CFileDialog::AddPlace | Overbelast. Voegt een map toe aan de lijst met plaatsen die beschikbaar zijn voor de gebruiker om items te openen of op te slaan. |
| CFileDialog::AddPushButton | Hiermee voegt u een knop toe aan het dialoogvenster. |
| CFileDialog::AddRadioButtonList | Hiermee voegt u een keuzerondje (ook wel keuzerondje genoemd) toe aan het dialoogvenster. |
| CFileDialog::AddSeparator | Hiermee voegt u een scheidingsteken toe aan het dialoogvenster. |
| CFileDialog::AddText | Hiermee voegt u tekstinhoud toe aan het dialoogvenster. |
| CFileDialog::ApplyOFNToShellDialog | Hiermee wordt de status bijgewerkt zodat CFileDialog deze overeenkomt met de parameters en vlaggen die zijn opgeslagen in de m_ofn lidvariabele. |
| CFileDialog::D oModal | Hiermee wordt het dialoogvenster weergegeven en kan de gebruiker een selectie maken. |
| CFileDialog::EnableOpenDropDown | Hiermee schakelt u een vervolgkeuzelijst in op de knop Openen of Opslaan in het dialoogvenster. |
| CFileDialog::EndVisualGroup | Hiermee stopt u de toevoeging van elementen aan een visuele groep in het dialoogvenster. |
| CFileDialog::GetCheckButtonState | Hiermee haalt u de huidige status van een selectievakje (selectievakje) op in het dialoogvenster. |
| CFileDialog::GetControlItemState | Hiermee wordt de huidige status van een item in een containerbeheer in het dialoogvenster opgeslagen. |
| CFileDialog::GetControlState | Hiermee haalt u de huidige zichtbaarheid en ingeschakelde statussen van een bepaald besturingselement op. |
| CFileDialog::GetEditBoxText | Hiermee haalt u de huidige tekst op in een besturingselement voor een invoervak. |
| CFileDialog::GetFileExt | Retourneert de extensie van het geselecteerde bestand. |
| CFileDialog::GetFileName | Retourneert de bestandsnaam van het geselecteerde bestand. |
| CFileDialog::GetFileTitle | Retourneert de titel van het geselecteerde bestand. |
| CFileDialog::GetFolderPath | Hiermee wordt het pad van de momenteel geopende map of map opgehaald voor een dialoogvenster Openen of Opslaan als in explorer. |
| CFileDialog::GetIFileDialogCustomize | Hiermee wordt het interne COM-object opgehaald voor een aangepast CFileDialog object. |
| CFileDialog::GetIFileOpenDialog | Hiermee wordt het interne COM-object opgehaald voor een CFileDialog object dat wordt gebruikt als dialoogvenster Bestand openen. |
| CFileDialog::GetIFileSaveDialog | Hiermee wordt het interne COM-object opgehaald voor een CFileDialog object dat wordt gebruikt als het dialoogvenster Bestand opslaan . |
| CFileDialog::GetNextPathName | Retourneert het volledige pad van het volgende geselecteerde bestand. |
| CFileDialog::GetOFN | Haalt de OPENFILENAME structuur van het CFileDialog object op. |
| CFileDialog::GetPathName | Retourneert het volledige pad van het geselecteerde bestand. |
| CFileDialog::GetReadOnlyPref | Retourneert de alleen-lezenstatus van het geselecteerde bestand. |
| CFileDialog::GetResult | Hiermee haalt u de keuze op die de gebruiker in het dialoogvenster heeft gemaakt. |
| CFileDialog::GetResults | Hiermee haalt u de keuzen van de gebruiker op in een dialoogvenster dat meerdere selecties toestaat. |
| CFileDialog::GetSelectedControlItem | Hiermee haalt u een bepaald item op uit opgegeven containerbesturingselementen in het dialoogvenster. |
| CFileDialog::GetStartPosition | Retourneert de positie van het eerste element van de lijst met bestandsnaamen. |
| CFileDialog::HideControl | Hiermee verbergt u het opgegeven besturingselement in een dialoogvenster Openen of Opslaan als . |
| CFileDialog::IsPickFoldersMode | Bepaalt of het huidige dialoogvenster in de mapkiezermodus wordt weergegeven. |
| CFileDialog::MakeProminent | Hiermee wordt een besturingselement in het dialoogvenster opvallen in vergelijking met andere toegevoegde besturingselementen. |
| CFileDialog::RemoveControlItem | Hiermee verwijdert u een item uit een containerbesturing in het dialoogvenster. |
| CFileDialog::SetCheckButtonState | Hiermee stelt u de huidige status van een selectievakjeknop (selectievakje) in het dialoogvenster in. |
| CFileDialog::SetControlItemState | Hiermee stelt u de huidige status van een item in een containerbesturing in het dialoogvenster in. |
| CFileDialog::SetControlItemText | Hiermee stelt u de tekst van een besturingselementitem in. Bijvoorbeeld de tekst die bij een keuzerondje of een item in een menu hoort. |
| CFileDialog::SetControlLabel | Hiermee stelt u de tekst in die is gekoppeld aan een besturingselement, zoals knoptekst of een label voor een invoervak. |
| CFileDialog::SetControlState | Hiermee stelt u de huidige zichtbaarheid en ingeschakelde statussen van een bepaald besturingselement in. |
| CFileDialog::SetControlText | Hiermee stelt u de tekst voor het opgegeven besturingselement in een dialoogvenster Openen of Opslaan als in verkenner. |
| CFileDialog::SetDefExt | Hiermee stelt u de standaardbestandsextensie in voor het dialoogvenster Openen of Opslaan als . |
| CFileDialog::SetEditBoxText | Hiermee stelt u de huidige tekst in een besturingselement voor een invoervak in. |
| CFileDialog::SetProperties | Biedt een eigenschappenarchief waarmee de standaardwaarden worden gedefinieerd die moeten worden gebruikt voor het item dat wordt opgeslagen. |
| CFileDialog::SetSelectedControlItem | Hiermee stelt u de geselecteerde status van een bepaald item in een keuzerondjegroep of een keuzelijst met invoervak in het dialoogvenster in. |
| CFileDialog::SetTemplate | Hiermee stelt u de dialoogvenstersjabloon voor het CFileDialog object in. |
| CFileDialog::StartVisualGroup | Hiermee declareert u een visuele groep in het dialoogvenster. Volgende aanroepen naar een 'add'-methode voegen deze elementen toe aan deze groep. |
| CFileDialog::UpdateOFNFromShellDialog | Hiermee worden de gegevens bijgewerkt die zijn opgeslagen in de m_ofn lidvariabele zodat deze overeenkomen met de huidige status van het dialoogvenster bestand. |
Beveiligde methoden
| Naam | Description |
|---|---|
| CFileDialog::OnButtonClicked | Wordt aangeroepen wanneer op de knop wordt geklikt. |
| CFileDialog::OnCheckButtonToggled | Aangeroepen wanneer het selectievakje is ingeschakeld/uitgeschakeld. |
| CFileDialog::OnControlActivating | Wordt aangeroepen wanneer het besturingselement actief is. |
| CFileDialog::OnFileNameChange | Hiermee wordt het WM_NOTIFY CDN_SELCHANGE bericht verwerkt. |
| CFileDialog::OnFileNameOK | Hiermee wordt de bestandsnaam gevalideerd die in het dialoogvenster is ingevoerd. |
| CFileDialog::OnFolderChange | Hiermee wordt het WM_NOTIFY CDN_FOLDERCHANGE bericht verwerkt. |
| CFileDialog::OnInitDone | Hiermee wordt het WM_NOTIFY CDN_INITDONE bericht verwerkt. |
| CFileDialog::OnItemSelected | Aangeroepen wanneer het containeritem wordt geselecteerd. |
| CFileDialog::OnLBSelChangedNotify | Hiermee kunt u aangepaste acties uitvoeren wanneer de bestandsselectie wordt gewijzigd. |
| CFileDialog::OnShareViolation | Verwerkt schendingen van delen. |
| CFileDialog::OnTypeChange | Hiermee wordt het WM_NOTIFY CDN_TYPECHANGE bericht verwerkt. |
Leden van openbare gegevens
| Naam | Description |
|---|---|
| CFileDialog::m_ofn | De Windows-structuur OPENFILENAME . Biedt toegang tot de basisdialoogvensterparameters voor bestanden. |
Opmerkingen
In algemene dialoogvensters voor bestanden kunt u dialoogvensters voor bestandsselectie implementeren, bijvoorbeeld Bestand openen en Opslaan als, op een manier die consistent is met Windows-standaarden.
U kunt net als de opgegeven constructor gebruiken CFileDialog , of u kunt uw eigen dialoogvensterklasse afleiden van CFileDialog en een constructor schrijven die aan uw behoeften voldoet. In beide gevallen gedragen deze dialoogvensters zich als standaard-MFC-dialoogvensters omdat ze zijn afgeleid van de CCommonDialog-klasse.
CFileDialog is afhankelijk van het COMMDLG.DLL-bestand dat is opgenomen in Windows.
Zowel het uiterlijk als de functionaliteit van de CFileDialog met Windows Vista of hoger verschillen van de eerdere versies van Windows. De standaardinstelling CFileDialog maakt automatisch gebruik van de nieuwe stijl Windows Vista of hoger zonder codewijzigingen als een programma wordt gecompileerd en uitgevoerd onder Windows Vista of hoger. Gebruik de parameter bVistaStyle in de constructor om deze automatische update handmatig te overschrijven. De uitzondering op de automatische update is aangepaste dialoogvensters. Ze worden niet geconverteerd naar de nieuwe stijl. Zie CFileDialog::CFileDialog voor meer informatie over de constructor.
Opmerking
Het besturingselement-id-systeem verschilt in Windows Vista of hoger van eerdere versies van Windows wanneer u een CFileDialog. U moet alle verwijzingen naar CFileDialog besturingselementen in code bijwerken voordat u uw project kunt overzetten vanuit een eerdere versie van Windows.
Sommige CFileDialog methoden worden niet ondersteund onder Windows Vista of hoger. Raadpleeg het onderwerp van de afzonderlijke methode voor informatie over of de methode wordt ondersteund. Bovendien worden de volgende overgenomen functies niet ondersteund onder Windows Vista of hoger:
De Windows-berichten voor de CFileDialog klasse variëren op basis van het besturingssysteem dat u gebruikt. Windows XP biedt bijvoorbeeld geen ondersteuning voor CDialog::OnCancel en CDialog::OnOK voor de CFileDialog klasse. Windows Vista en latere besturingssystemen ondersteunen ze echter wel. Zie het CFileDialog-voorbeeld: Gebeurtenisvolgorde vastleggen voor meer informatie over de verschillende berichten die worden gegenereerd en de volgorde waarin ze worden ontvangen.
Als u een CFileDialog object wilt gebruiken, maakt u eerst het object met behulp van de CFileDialog constructor. Nadat het dialoogvenster is samengesteld, kunt u waarden instellen of wijzigen in de CFileDialog::m_ofn structuur om de waarden of statussen van de dialoogvensterbesturingselementen te initialiseren. De m_ofn structuur is van het type OPENFILENAME. Zie de OPENFILENAME-structuur in de Windows SDK voor meer informatie.
Nadat u de besturingselementen voor het dialoogvenster hebt geïnitialiseerd, roept u de methode CFileDialog::D oModal aan om het dialoogvenster weer te geven, zodat de gebruiker het pad en de bestandsnaam kan typen.
DoModal retourneert of de gebruiker op ok (IDOK) of op de knop Annuleren (IDCANCEL) heeft geklikt. Als DoModal IDOK wordt geretourneerd, kunt u een van de CFileDialog openbare lidfuncties gebruiken om de informatie op te halen die door de gebruiker is geplaatst.
Opmerking
Onder Windows Vista of hoger worden meerdere aanroepen naar IFileDialog::SetFileTypes een fout veroorzaakt. De tweede aanroep voor SetFileTypes elk exemplaar van een exemplaar van een CFileDialog retourneert E_UNEXPECTED in Windows Vista of hoger. Sommige CFileDialog methodefuncties roepen SetFileTypesaan. Er worden bijvoorbeeld twee aanroepen voor CFileDialog::DoModal hetzelfde exemplaar van een CFileDialogassert gegenereerd.
CFileDialog bevat verschillende beveiligde leden waarmee u aangepaste verwerking van schendingen van share's, validatie van bestandsnaam en melding over wijzigingen in keuzelijsten kunt uitvoeren. Deze beveiligde leden zijn callback-functies die de meeste toepassingen niet hoeven te gebruiken, omdat de standaardafhandeling automatisch wordt uitgevoerd. Berichtenoverzichtvermeldingen voor deze functies zijn niet vereist omdat ze standaard virtuele functies zijn.
U kunt de functie Windows CommDlgExtendedError gebruiken om te bepalen of er een fout is opgetreden tijdens de initialisatie van het dialoogvenster en voor meer informatie over de fout.
De vernietiging van CFileDialog objecten wordt automatisch verwerkt. U hoeft CDialog::EndDialog niet aan te roepen.
Als u wilt dat de gebruiker meerdere bestanden selecteert, stelt u de vlag OFN_ALLOWMULTISELECT in voordat u aanroept DoModal. U moet uw eigen bestandsnaambuffer opgeven voor de geretourneerde lijst met meerdere bestandsnamen. Doe dit door een aanwijzer te vervangen m_ofn.lpstrFile door een buffer die u hebt toegewezen, nadat u de CFileDialog, maar voordat u aanroept DoModal.
Daarnaast moet u instellen m_ofn.nMaxFile met behulp van het aantal tekens in de buffer waarnaar m_ofn.lpstrFilewordt verwezen. Als u het maximum aantal bestanden instelt waarop moet worden geselecteerd n, is n * (_MAX_PATH + 1) + 1de vereiste buffergrootte. Het eerste item dat in de buffer wordt geretourneerd, is het pad naar de map waarin de bestanden zijn geselecteerd. Voor dialoogvensters in Windows Vista of latere stijl worden de tekenreeksen voor de map en bestandsnaam null beëindigd, met een extra null-teken achter de achternaam. Met deze indeling kunnen de dialoogvensters in de Verkenner-stijl lange bestandsnamen retourneren die spaties bevatten. Voor dialoogvensters in oude stijl worden de tekenreeksen voor mappen en bestandsnaam gescheiden door spaties en gebruikt de functie korte bestandsnamen voor bestandsnamen met spaties.
In het volgende voorbeeld ziet u hoe u een buffer gebruikt om meerdere bestandsnamen op te halen en weer te geven.
#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++;
}
}
Als u de buffergrootte wilt wijzigen als reactie op de gebruiker die meerdere bestandsnamen selecteert, moet u een nieuwe klasse afleiden van CFileDialog de methode CFileDialog::OnFileNameChange .
Als u een nieuwe klasse afleidt van CFileDialog, kunt u een berichtoverzicht gebruiken om berichten te verwerken. Als u de standaardverwerking van berichten wilt uitbreiden, moet u een klasse afleiden van CFileDialog, een berichttoewijzing toevoegen aan de nieuwe klasse en lidfuncties voor de nieuwe berichten opgeven. U hoeft geen hookfunctie op te geven om het dialoogvenster aan te passen.
Als u het dialoogvenster wilt aanpassen, moet u een klasse afleiden uit CFileDialog, een aangepaste dialoogvenstersjabloon opgeven en een berichtoverzicht toevoegen om de meldingsberichten van de uitgebreide besturingselementen te verwerken. Geef niet-verwerkte berichten door aan de basisklasse. U hoeft de haakfunctie niet aan te passen.
Wanneer u de stijl CFileDialogVan Windows Vista of hoger gebruikt, kunt u geen berichtkaarten en dialoogvenstersjablonen gebruiken. In plaats daarvan moet u de COM-interfaces gebruiken voor vergelijkbare functionaliteit.
Zie Algemene dialoogvensterklassen voor meer informatie over het gebruikCFileDialog.
Overnamehiërarchie
CFileDialog
Requirements
Koptekst: afxdlgs.h
CFileDialog::AddCheckButton
Hiermee voegt u een vinkje toe aan het dialoogvenster.
HRESULT AddCheckButton(
DWORD dwIDCtl,
const CString& strLabel,
BOOL bChecked);
Parameterwaarden
dwIDCtl
De id van de knop Controleren die moet worden toegevoegd.
strLabel
De naam van de knop Controleren.
bChecked
Een Booleaanse waarde die de huidige status van de controleknop aangeeft. WAAR indien ingeschakeld; ANDERS ONWAAR
Opmerkingen
CFileDialog::AddComboBox
Hiermee voegt u een keuzelijst met invoervak toe aan het dialoogvenster.
HRESULT AddComboBox(DWORD dwIDCtl);
Parameterwaarden
dwIDCtl
De id van de keuzelijst met invoervak die u wilt toevoegen.
Opmerkingen
CFileDialog::AddControlItem
Voegt een item toe aan een containerbesturing in het dialoogvenster.
HRESULT AddControlItem(
DWORD dwIDCtl,
DWORD dwIDItem,
const CString& strLabel);
Parameterwaarden
dwIDCtl
De id van het containerbeheer waaraan het item moet worden toegevoegd.
dwIDItem
De id van het item.
strLabel
De tekst van het item.
Opmerkingen
CFileDialog::AddEditBox
Hiermee voegt u een invoervak toe aan het dialoogvenster.
HRESULT AddEditBox(
DWORD dwIDCtl,
const CString& strText);
Parameterwaarden
dwIDCtl
De id van het invoervak dat u wilt toevoegen.
strText
De naam van het invoervak.
Opmerkingen
CFileDialog::Menu Toevoegen
Hiermee voegt u een menu toe aan het dialoogvenster.
HRESULT AddMenu(
DWORD dwIDCtl,
const CString& strLabel);
Parameterwaarden
dwIDCtl
De id van het menu dat moet worden toegevoegd.
strLabel
De menunaam.
Opmerkingen
CFileDialog::AddPlace
Voegt een map toe aan de lijst met plaatsen die beschikbaar zijn voor de gebruiker om items te openen of op te slaan.
void AddPlace(
LPCWSTR lpszFolder,
FDAP fdap = FDAP_TOP) throw();
void AddPlace(
IShellItem* psi,
FDAP fdap = FDAP_TOP) throw();
Parameterwaarden
lpszFolder
Een pad naar de map die beschikbaar moet worden gesteld aan de gebruiker. Dit kan alleen een map zijn.
fdap
Hiermee geeft u op waar de map in de lijst wordt geplaatst.
Psi
Een aanwijzer naar een IShellItem die de map vertegenwoordigt die beschikbaar moet worden gesteld aan de gebruiker. Dit kan alleen een map zijn.
Opmerkingen
CFileDialog::AddPushButton
Hiermee voegt u een knop toe aan het dialoogvenster.
HRESULT AddPushButton(
DWORD dwIDCtl,
const CString& strLabel);
Parameterwaarden
dwIDCtl
De id van de knop die u wilt toevoegen.
strLabel
De naam van de knop.
Opmerkingen
CFileDialog::AddRadioButtonList
Hiermee voegt u een keuzerondje (ook wel keuzerondje genoemd) toe aan het dialoogvenster.
HRESULT AddRadioButtonList(DWORD dwIDCtl);
Parameterwaarden
dwIDCtl
De id van de groep keuzerondje die u wilt toevoegen.
Opmerkingen
CFileDialog::AddSeparator
Hiermee voegt u een scheidingsteken toe aan het dialoogvenster.
HRESULT AddSeparator(DWORD dwIDCtl);
Parameterwaarden
dwIDCtl
De id van het scheidingsteken toevoegen.
Opmerkingen
CFileDialog::AddText
Hiermee voegt u tekst toe aan het dialoogvenster.
HRESULT AddText(
DWORD dwIDCtl,
const CString& strText);
Parameterwaarden
dwIDCtl
De id van de tekst die moet worden toegevoegd.
strText
De naam van de tekst.
Opmerkingen
CFileDialog::ApplyOFNToShellDialog
Hiermee wordt de huidige status van het CFileDialog bijgewerkt op basis van de waarden die zijn opgeslagen in de m_ofn gegevensstructuur.
void ApplyOFNToShellDialog();
Opmerkingen
In versies van Windows vóór Windows Vista werd de gegevensstructuur OPENFILENAME continu gesynchroniseerd met de status van de CFileDialog. Wijzigingen in de m_ofn lidvariabele werden onmiddellijk doorgevoerd in de status van het dialoogvenster. Wijzigingen in de status van het dialoogvenster werken ook onmiddellijk de m_ofn lidvariabele bij.
In Windows Vista of hoger worden de waarden in de m_ofn lidvariabele en de CFileDialog status ervan niet gegarandeerd gesynchroniseerd. Deze functie dwingt de status van de CFileDialog update af zodat deze overeenkomt met de m_ofn structuur. Windows roept deze functie automatisch aan tijdens CFileDialog::D oModal.
Zie CFileDialog Class voor meer informatie over het gebruik van de CFileDialog klasse onder Windows Vista of hoger.
Example
Zie het voorbeeld voor CFileDialog::UpdateOFNFromShellDialog.
CFileDialog::CFileDialog
Roep deze functie aan om een standaarddialoogvenster voor Windows-bestanden te maken.
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);
Parameterwaarden
bOpenFileDialog
[in] De parameter die aangeeft welk type dialoogvenster moet worden gemaakt. Stel deze in op TRUE om een dialoogvenster Bestand openen te maken. Stel deze in op FALSE om een dialoogvenster Bestand opslaan als te maken.
lpszDefExt
[in] De standaardbestandsextensie. Als de gebruiker geen bekende extensie (een met een koppeling op de computer van de gebruiker) bevat in het vak Bestandsnaam, wordt de extensie die is opgegeven door lpszDefExt automatisch toegevoegd aan de bestandsnaam. Als deze parameter NULL is, wordt er geen extensie toegevoegd.
lpszFileName
[in] De oorspronkelijke bestandsnaam die wordt weergegeven in het vak Bestandsnaam. Als NULL, wordt er geen initiële bestandsnaam weergegeven.
dwFlags
[in] Een combinatie van een of meer vlaggen die u kunt gebruiken om het dialoogvenster aan te passen. Zie de STRUCTUUR OPENFILENAME in de Windows SDK voor een beschrijving van deze vlaggen. Als u het m_ofn.Flags structuurlid wijzigt, gebruikt u een bitwise-OR-operator in uw wijzigingen om het standaardgedrag intact te houden.
lpszFilter
[in] Een reeks tekenreeksparen die filters opgeven die u op het bestand kunt toepassen. Als u bestandsfilters opgeeft, worden alleen bestanden die voldoen aan filtercriteria weergegeven in de lijst Bestanden. Zie de sectie Opmerkingen voor meer informatie over het werken met bestandsfilters.
pParentWnd
[in] Een aanwijzer naar het bovenliggende of eigenaarsvenster van het dialoogvenster bestand.
dwSize
[in] De grootte van de OPENFILENAME structuur. Deze waarde is afhankelijk van de versie van het besturingssysteem. MFC heeft deze parameter gebruikt om het juiste type dialoogvenster te bepalen dat moet worden gemaakt. De standaardgrootte van 0 betekent dat de MFC-code de juiste dialoogvenstergrootte bepaalt die moet worden gebruikt op basis van de versie van het besturingssysteem waarop het programma wordt uitgevoerd.
bVistaStyle
[in] Opmerking Deze parameter is beschikbaar in Visual Studio 2008 en hoger en zorgt ervoor dat het dialoogvenster met een nieuwe stijl alleen wordt gebruikt als u werkt in Windows Vista of hoger.
De parameter waarmee de stijl van het dialoogvenster bestand wordt opgegeven. Stel deze optie in op TRUE om de nieuwe dialoogvensters van het Vista-stijlbestand te gebruiken. Anders wordt de oude stijl van dialoogvensters gebruikt. Zie de sectie Opmerkingen voor meer informatie over het uitvoeren onder Vista.
Opmerkingen
Er wordt een dialoogvenster Bestand openen of Opslaan als gemaakt, afhankelijk van de waarde van bOpenFileDialog.
Het opgeven van een standaardextensie met behulp van lpszDefExt produceert mogelijk niet het gedrag dat u verwacht, omdat het zelden voorspelbaar is welke extensies bestandskoppelingen hebben op de computer van de gebruiker. Als u meer controle nodig hebt over het toevoegen van een standaardextensie, kunt u uw eigen klasse afleiden van CFileDialogen de CFileDialog::OnFileNameOK methode overschrijven om uw eigen extensieafhandeling uit te voeren.
Als u wilt dat de gebruiker meerdere bestanden selecteert, stelt u de OFN_ALLOWMULTISELECT vlag in voordat u DoModal aanroept. U moet uw eigen bestandsnaambuffer opgeven om de geretourneerde lijst met meerdere bestandsnamen op te slaan. Doe dit door een aanwijzer te vervangen m_ofn.lpstrFile door een buffer die u hebt toegewezen, nadat u de CFileDialog hebt gemaakt, maar voordat u aanroept DoModal. Daarnaast moet u instellen m_ofn.nMaxFile met het aantal tekens in de buffer waarnaar wordt verwezen.m_ofn.lpstrFile Als u het maximum aantal bestanden instelt dat moet worden geselecteerd op n, is nde benodigde buffergrootte *(_MAX_PATH + 1) + 1. Voorbeeld:
#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++;
}
}
Als u wilt dat de gebruiker het formaat van een dialoogvenster in Explorer wijzigt met de muis of het toetsenbord, stelt u de vlag OFN_ENABLESIZING in. Het instellen van deze vlag is alleen nodig als u een hookprocedure of aangepaste sjabloon opgeeft. De vlag werkt alleen met een dialoogvenster in explorerstijl; Dialoogvensters in oude stijl kunnen niet worden aangepast.
De parameter lpszFilter wordt gebruikt om te bepalen welk type bestandsnaam een bestand moet worden weergegeven in de lijst met bestanden. De eerste tekenreeks in het tekenreekspaar beschrijft het filter; de tweede tekenreeks geeft de bestandsnaamextensie aan die moet worden gebruikt. Er kunnen meerdere extensies worden opgegeven met behulp van een puntkomma (het ';'-teken) als scheidingsteken. De tekenreeks eindigt met twee verticale staaftekens (||), gevolgd door een NULL-teken. U kunt ook een CString-object voor deze parameter gebruiken.
Met Microsoft Excel kunnen gebruikers bijvoorbeeld bestanden met extensies .xlc (grafiek) of .xls (werkblad) openen. Het filter voor Excel kan worden geschreven als:
static TCHAR BASED_CODE szFilter[] = _T("Chart Files (*.xlc)|*.xlc|")
_T("Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|")
_T("*.xlc; *.xls|All Files (*.*)|*.*||");
Als u deze tekenreeks echter wilt gebruiken om de OPENFILENAME structuur rechtstreeks bij te werken, moet u de tekenreeksen scheiden met het null-teken, '\0'in plaats van de verticale balken ('|').
De parameter bVistaStyle is alleen van toepassing wanneer deze wordt uitgevoerd onder Windows Vista of hoger. In eerdere versies van Windows wordt deze parameter genegeerd. Als bVistaStyle is ingesteld op TRUE, wordt het nieuwe dialoogvenster Vista-stijlbestand gebruikt wanneer u een programma compileert met Visual Studio 2008 of hoger. Anders wordt het vorige dialoogvenster bestand in MFC-stijl gebruikt.
Dialoogvenstersjablonen worden niet ondersteund in dialoogvensters op basis van bVistaStyle
Example
Zie het voorbeeld voor CFileDialog::D oModal.
CFileDialog::D oModal
Roep deze functie aan om het algemene windows-bestandsdialoogvenster weer te geven en de gebruiker toe te staan door bestanden en mappen te bladeren en een bestandsnaam in te voeren.
virtual INT_PTR DoModal();
Retourwaarde
IDOK of IDCANCEL. Als IDCANCEL wordt geretourneerd, roept u de functie Windows CommDlgExtendedError aan om te bepalen of er een fout is opgetreden.
IDOK en IDCANCEL zijn constanten die aangeven of de gebruiker de knop OK of Annuleren heeft geselecteerd.
Opmerkingen
Als u de verschillende opties voor het dialoogvenster bestand wilt initialiseren door leden van de m_ofn structuur in te stellen, moet u dit doen voordat u aanroept DoModal, maar nadat het dialoogvensterobject is samengesteld.
Als u bijvoorbeeld wilt toestaan dat de gebruiker meerdere bestanden selecteert, stelt u de vlag OFN_ALLOWMULTISELECT in voordat u aanroept DoModal, zoals wordt weergegeven in het codevoorbeeld in dit onderwerp.
Wanneer de gebruiker op de knoppen OK of Annuleren van het dialoogvenster klikt of de optie Sluiten selecteert in het besturingsmenu van het dialoogvenster, wordt het besturingselement teruggezet naar uw toepassing. Vervolgens kunt u andere lidfuncties aanroepen om de instellingen of informatie op te halen die de gebruiker invoert in het dialoogvenster.
DoModal is een virtuele functie die wordt overschreven van klasse 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
Hiermee schakelt u een vervolgkeuzelijst in op de knop Openen of Opslaan in het dialoogvenster.
HRESULT EnableOpenDropDown(DWORD dwIDCtl);
Parameterwaarden
dwIDCtl
De id van de vervolgkeuzelijst.
Opmerkingen
CFileDialog::EndVisualGroup
Hiermee stopt u de toevoeging van elementen aan een visuele groep in het dialoogvenster.
HRESULT EndVisualGroup();
Retourwaarde
Retourneert S_OK indien geslaagd; anders een foutwaarde.
Opmerkingen
CFileDialog::GetCheckButtonState
Hiermee wordt de huidige status van een selectievakje (selectievakje) opgehaald in het dialoogvenster.
HRESULT GetCheckButtonState(
DWORD dwIDCtl,
BOOL& bChecked);
Parameterwaarden
dwIDCtl
De id van het selectievakje.
bChecked
De status van het selectievakje. TRUE geeft aan dat de controle is ingeschakeld; FALSE geeft aan dat dit selectievakje niet is ingeschakeld.
Opmerkingen
CFileDialog::GetControlItemState
Hiermee haalt u de huidige status van een item op in een containerbesturing in het dialoogvenster.
HRESULT GetControlItemState(
DWORD dwIDCtl,
DWORD dwIDItem,
CDCONTROLSTATEF& dwState);
Parameterwaarden
dwIDCtl
De id van het containerbeheer.
dwIDItem
De id van het item.
dwState
Een verwijzing naar een variabele die een van meer waarden van de OPSOMMING CDCONTROLSTATE ontvangt die de huidige status van het besturingselement aangeeft.
Opmerkingen
CFileDialog::GetControlState
Haalt de huidige zichtbaarheid en ingeschakelde statussen van een bepaald besturingselement op.
HRESULT GetControlState(
DWORD dwIDCtl,
CDCONTROLSTATEF& dwState);
Parameterwaarden
dwIDCtl
De id van het besturingselement.
dwState
Een verwijzing naar een variabele die een of meer waarden van de OPSOMMING CDCONTROLSTATE ontvangt die de huidige status van het besturingselement aangeeft.
Opmerkingen
CFileDialog::GetEditBoxText
Hiermee haalt u de huidige tekst op in een besturingselement voor een invoervak.
HRESULT GetEditBoxText(
DWORD dwIDCtl,
CString& strText);
Parameterwaarden
dwIDCtl
De id van het invoervak.
strText
De tekstwaarde.
Opmerkingen
CFileDialog::GetFileExt
Roep deze functie aan om de extensie van de bestandsnaam op te halen die in het dialoogvenster is ingevoerd.
CString GetFileExt() const;
Retourwaarde
De extensie van de bestandsnaam.
Opmerkingen
Als de naam van het opgegeven bestand bijvoorbeeld is DATA.TXT, GetFileExt wordt 'TXT' geretourneerd.
Als m_ofn.Flags de OFN_ALLOWMULTISELECT vlag is ingesteld, bevat deze tekenreeks een reeks null-beëindigde tekenreeksen, waarbij de eerste tekenreeks het mappad van de bestandsgroep is geselecteerd, gevolgd door de namen van alle bestanden die door de gebruiker zijn geselecteerd. Gebruik de ledenfuncties GetStartPosition en GetNextPathName om bestandspadnamen op te halen.
CFileDialog::GetFileName
Roep deze functie aan om de naam op te halen van de bestandsnaam die in het dialoogvenster is ingevoerd.
CString GetFileName() const;
Retourwaarde
De naam van het bestand.
Opmerkingen
De naam van het bestand bevat zowel het voorvoegsel als de extensie. Retourneert bijvoorbeeld GetFileName 'TEKST.' DAT" voor het bestand C:\FILES\TEXT.DAT.
Als m_ofn.Flags de OFN_ALLOWMULTISELECT vlag is ingesteld, moet u GetStartPosition en GetNextPathName aanroepen om een bestandspadnaam op te halen.
CFileDialog::GetFileTitle
Roep deze functie aan om de titel op te halen van het bestand dat in het dialoogvenster is ingevoerd.
CString GetFileTitle() const;
Retourwaarde
De titel van het bestand.
Opmerkingen
De titel van het bestand bevat alleen het voorvoegsel, zonder het pad of de extensie. Retourneert bijvoorbeeld GetFileTitle 'TEKST' voor het bestand C:\FILES\TEXT.DAT.
Als m_ofn.Flags de OFN_ALLOWMULTISELECT vlag is ingesteld, bevat deze tekenreeks een reeks null-beëindigde tekenreeksen, waarbij de eerste tekenreeks het mappad van de bestandsgroep is geselecteerd, gevolgd door de namen van alle bestanden die door de gebruiker zijn geselecteerd. Gebruik daarom de functies GetStartPosition en GetNextPathName om de volgende bestandsnaam in de lijst op te halen.
Example
Zie het voorbeeld voor CFileDialog::D oModal.
CFileDialog::GetFolderPath
Roep deze lidfunctie aan om het pad van de momenteel geopende map of map op te halen voor een dialoogvenster Openen of Opslaan als.
CString GetFolderPath() const;
Retourwaarde
Een CString-object met de momenteel geopende map of map.
Opmerkingen
Het dialoogvenster moet zijn gemaakt met de stijl OFN_EXPLORER; anders mislukt de methode met een assertie.
U kunt deze methode alleen aanroepen terwijl het dialoogvenster wordt weergegeven. Nadat het dialoogvenster is gesloten, werkt deze functie niet meer en mislukt de methode met een assertie.
CFileDialog::GetIFileDialogCustomize
Hiermee wordt een aanwijzer opgehaald naar het interne COM-object voor een bepaalde CFileDialog.
IFileDialogCustomize* GetIFileDialogCustomize();
Retourwaarde
De aanwijzer naar het interne COM-object voor de CFileDialog. Het is uw verantwoordelijkheid om deze aanwijzer op de juiste manier vrij te geven.
Opmerkingen
Gebruik deze functie alleen onder Windows Vista of hoger met een object waarvoor bVistaStyle is ingesteld op TRUE. Als u deze functie gebruikt wanneer bVistaStyle FALSE is, retourneert deze NULL in de releasemodus en genereert deze een assertie in de foutopsporingsmodus.
Zie IFileDialogCustomize voor meer informatie over de IFileDialogCustomize interface.
Example
In dit voorbeeld wordt het interne COM-object opgehaald. Als u dit codevoorbeeld wilt uitvoeren, moet u deze compileren onder Windows Vista of hoger.
// 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
Hiermee wordt een aanwijzer opgehaald naar het interne COM-object voor een bepaalde CFileDialog.
IFileOpenDialog* GetIFileOpenDialog();
Retourwaarde
De aanwijzer naar het interne COM-object voor de CFileDialog. Het is uw verantwoordelijkheid om deze aanwijzer op de juiste manier vrij te geven.
Opmerkingen
Gebruik deze functie alleen onder Windows Vista of hoger met een object waarvoor bVistaStyle is ingesteld op TRUE. Deze functie retourneert NULL als het CFileDialog dialoogvenster Openen niet is of als bVistaStyle is ingesteld op FALSE. In dit laatste geval retourneert de functie alleen NULL in de releasemodus. In de foutopsporingsmodus wordt er een assertie geretourneerd.
Zie IFileOpenDialog voor meer informatie over de IFileOpenDialog interface.
Example
In dit voorbeeld wordt het interne COM-object opgehaald. Als u deze code wilt uitvoeren, moet u deze compileren onder Windows Vista of hoger.
// 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
Hiermee wordt een aanwijzer opgehaald naar het interne COM-object voor een bepaalde CFileDialog.
IFileSaveDialog* GetIFileSaveDialog();
Retourwaarde
De aanwijzer naar het interne COM-object voor de CFileDialog. Het is uw verantwoordelijkheid om deze aanwijzer op de juiste manier vrij te geven.
Opmerkingen
Gebruik deze functie alleen onder Windows Vista of hoger met een object waarvoor bVistaStyle is ingesteld op TRUE. Deze functie retourneert NULL als het CFileDialog dialoogvenster Opslaan niet is of als bVistaStyle is ingesteld op FALSE. In dit laatste geval retourneert de functie alleen NULL in de releasemodus. In de foutopsporingsmodus wordt er een assertie geretourneerd.
Zie IFileSaveDialog voor meer informatie over de IFileSaveDialog interface.
Example
In dit voorbeeld wordt het interne COM-object opgehaald. Als u dit codevoorbeeld wilt uitvoeren, moet u deze compileren onder Windows Vista of hoger.
// 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
Roep deze functie aan om de volgende bestandsnaam op te halen uit de groep die in het dialoogvenster is geselecteerd.
CString GetNextPathName(POSITION& pos) const;
Parameterwaarden
pos
Een verwijzing naar een POSITION-waarde die wordt geretourneerd door een eerdere GetNextPathName aanroep of GetStartPosition functieaanroep. NULL als het einde van de lijst is bereikt.
Retourwaarde
Het volledige pad van het bestand.
Opmerkingen
Het pad van de bestandsnaam bevat de titel van het bestand plus het volledige mappad. Retourneert bijvoorbeeld GetNextPathName C:\FILES\TEXT. DAT" voor het bestand C:\FILES\TEXT.DAT. U kunt in een doorstuurlus gebruiken GetNextPathName als u de initiële positie met een aanroep naar GetStartPosition.
Als de selectie uit slechts één bestand bestaat, wordt die bestandsnaam geretourneerd.
CFileDialog::GetOFN
Haalt de bijbehorende OPENFILENAME structuur op.
const OPENFILENAME& GetOFN() const;
OPENFILENAME& GetOFN();
Retourwaarde
Een OPENFILENAME-structuur .
Opmerkingen
Gebruik de tweede versie van deze functie om het uiterlijk van een dialoogvenster Bestand openen of Opslaan als te initialiseren nadat het is samengesteld, maar voordat deze wordt weergegeven met de DoModal lidfunctie. U kunt bijvoorbeeld het lid van m_ofn het lpstrTitle bijschrift instellen dat het dialoogvenster moet hebben.
CFileDialog::GetPathName
Roep deze functie aan om het volledige pad op te halen van het bestand dat in het dialoogvenster is ingevoerd.
CString GetPathName() const;
Retourwaarde
Het volledige pad van het bestand.
Opmerkingen
Het pad van de bestandsnaam bevat de titel van het bestand plus het volledige mappad. Retourneert bijvoorbeeld GetPathName C:\FILES\TEXT. DAT" voor het bestand C:\FILES\TEXT.DAT.
Als m_ofn.Flags de OFN_ALLOWMULTISELECT vlag is ingesteld, bevat deze tekenreeks een reeks tekenreeksen met null-tekenreeksen, waarbij de eerste tekenreeks het mappad van de bestandsgroep is geselecteerd, gevolgd door de namen van alle bestanden die door de gebruiker zijn geselecteerd. Gebruik daarom de functies GetStartPosition en GetNextPathName om de volgende bestandsnaam in de lijst op te halen.
Example
Zie het voorbeeld voor CFileDialog::D oModal.
CFileDialog::GetReadOnlyPref
Roep deze functie aan om te bepalen of het selectievakje Alleen-lezen is ingeschakeld in de standaardvensters Bestand openen en Opslaan als.
BOOL GetReadOnlyPref() const;
Retourwaarde
Niet nul als het selectievakje Alleen-lezen in het dialoogvenster is ingeschakeld; anders 0.
Opmerkingen
U kunt het selectievakje Alleen-lezen verbergen door de OFN_HIDEREADONLY stijl in de constructor in te CFileDialog stellen.
Opmerking
Windows Vista of latere stijlobjecten CFileDialog bieden geen ondersteuning voor deze functie. Als u deze functie probeert te gebruiken op een Windows Vista- of latere stijl CFileDialog , wordt CNotSupportedException gegooid.
CFileDialog::GetResult
Haalt de keuze op die de gebruiker in het dialoogvenster heeft gemaakt.
IShellItem* GetResult() throw();
Retourwaarde
Een aanwijzer naar een IShellItem die de keuze van de gebruiker vertegenwoordigt.
Opmerkingen
CFileDialog::GetResults
Haalt de keuzen van de gebruiker op in een dialoogvenster dat meerdere selecties toestaat.
IShellItemArray* GetResults() throw();
Retourwaarde
Een aanwijzer naar een IShellItemArray waarmee de items die in het dialoogvenster zijn geselecteerd, toegankelijk zijn.
Opmerkingen
CFileDialog::GetSelectedControlItem
Hiermee haalt u een bepaald item op uit het opgegeven containerbeheer in het dialoogvenster.
HRESULT GetSelectedControlItem(
DWORD dwIDCtl,
DWORD& dwIDItem);
Parameterwaarden
dwIDCtl
De id van het containerbeheer.
dwIDItem
De id van het item dat de gebruiker in het besturingselement heeft geselecteerd.
Opmerkingen
CFileDialog::GetStartPosition
Roep deze lidfunctie aan om de positie van de eerste bestandspadnaam in de lijst op te halen, als m_ofn.Flags de vlag OFN_ALLOWMULTISELECT is ingesteld.
POSITION GetStartPosition() const;
Retourwaarde
Een POSITION-waarde die kan worden gebruikt voor iteratie; NULL als de lijst leeg is.
CFileDialog::HideControl
Roep deze lidfunctie aan om het opgegeven besturingselement te verbergen in het dialoogvenster Openen of Opslaan als.
void HideControl(int nID);
Parameterwaarden
nID
De id van het besturingselement dat moet worden verborgen.
Opmerkingen
Het dialoogvenster moet zijn gemaakt met de stijl OFN_EXPLORER; anders mislukt de functie met een assertie.
CFileDialog::IsPickFoldersMode
Bepaalt of het huidige dialoogvenster zich in de mapkiezermodus bevindt.
BOOL IsPickFoldersMode() const;
Retourwaarde
WAAR als het dialoogvenster zich in de mapkiezermodus bevindt; anders ONWAAR.
Opmerkingen
CFileDialog::m_ofn
m_ofn is een structuur van het type OPENFILENAME. De gegevens in deze structuur vertegenwoordigen de huidige status van de CFileDialog.
Opmerkingen
Gebruik deze structuur om het uiterlijk van een dialoogvenster Bestand openen of Opslaan als te initialiseren nadat u het hebt gemaakt, maar voordat u deze met de methode DoModal weergeeft. U kunt bijvoorbeeld het lpstrTitle-lid instellen op m_ofn het bijschrift dat u in het dialoogvenster wilt hebben.
Met de windows Vista- of latere stijl van CFileDialog is m_ofn niet gegarandeerd altijd overeenkomen met de status van het dialoogvenster. Het wordt gesynchroniseerd met het dialoogvenster in eerdere versies van Windows. Zie CFileDialog::ApplyOFNToShellDialog en CFileDialog::UpdateOFNFromShellDialog voor meer informatie over het synchroniseren van de m_ofn structuur en de CFileDialog status onder Windows Vista of hoger.
Dialoogvensters voor windows Vista- of latere stijlbestanden bieden geen ondersteuning voor bepaalde leden en vlaggen van de CFileDialog. Als gevolg hiervan hebben deze geen effect.
Hier volgt een lijst met leden die niet worden ondersteund door Windows Vista of hoger:
lpstrCustomFilterlpstrInitialDirlCustDatalpfnHooklpTemplateName
De volgende vlaggen worden niet ondersteund en hebben dus geen effect wanneer u de stijl Windows Vista of hoger van CFileDialog:
OFN_ENABLEHOOK
OFN_ENABLEINCLUDENOTIFY
OFN_ENABLETEMPLATE
OFN_ENABLETEMPLATEHANDLE
OFN_EXPLORER
OFN_EXTENSIONDIFFERENT
OFN_HIDEREADONLY
OFN_LONGNAMES - effectief altijd ingeschakeld in Windows Vista of hoger
OFN_NOLONGNAMES - effectief uitgeschakeld in Windows Vista of hoger
OFN_NONETWORKBUTTON - effectief altijd ingeschakeld in Windows Vista of hoger
OFN_READONLY
OFN_SHOWHELP
Zie de OPENFILENAME-structuur in de Windows SDK voor meer informatie over deze structuur.
CFileDialog::MakeProminent
Hiermee wordt een besturingselement in het dialoogvenster opvallen in vergelijking met andere besturingselementen.
HRESULT MakeProminent(DWORD dwIDCtl);
Parameterwaarden
dwIDCtl
De id van het besturingselement.
Opmerkingen
CFileDialog::OnButtonClicked
Wordt aangeroepen wanneer op de knop wordt geklikt.
virtual void OnButtonClicked(DWORD dwIDCtl);
Parameterwaarden
dwIDCtl
De id van de knop.
Opmerkingen
CFileDialog::OnCheckButtonToggled
Aangeroepen wanneer het selectievakje is ingeschakeld of uitgeschakeld.
virtual void OnCheckButtonToggled(
DWORD dwIDCtl,
BOOL bChecked);
Parameterwaarden
dwIDCtl
De id van het selectievakje.
bChecked
Ingeschakeld of uitgeschakeld.
Opmerkingen
CFileDialog::OnControlActivating
Wordt aangeroepen wanneer het besturingselement wordt geactiveerd.
virtual void OnControlActivating(DWORD dwIDCtl);
Parameterwaarden
dwIDCtl
De id van het besturingselement.
Opmerkingen
CFileDialog::OnFileNameChange
Overschrijf deze methode als u het WM_NOTIFY CDN_SELCHANGE bericht wilt verwerken.
virtual void OnFileNameChange();
Opmerkingen
Het systeem verzendt het CDN_SELCHANGE bericht wanneer de gebruiker een nieuw bestand of nieuwe map selecteert in de bestandslijst van het dialoogvenster Openen of Opslaan als . Overschrijf deze methode als u acties wilt uitvoeren als reactie op dit bericht.
Dit bericht wordt alleen door het systeem verzonden als het dialoogvenster is gemaakt met de vlag OFN_EXPLORER is ingeschakeld. Zie CDN_SELCHANGE voor meer informatie over de melding. Zie de structuur OPENFILENAME en de dialoogvensters Openen en Opslaan als voor informatie over de vlag OFN_EXPLORER.
CFileDialog::OnFileNameOK
Overschrijf deze functie alleen als u aangepaste validatie wilt opgeven van bestandsnamen die zijn ingevoerd in een algemeen dialoogvenster voor bestanden.
virtual BOOL OnFileNameOK();
Retourwaarde
1 als de bestandsnaam geen geldige bestandsnaam is; anders 0.
Opmerkingen
Met deze functie kunt u een bestandsnaam weigeren om een toepassingsspecifieke reden. Normaal gesproken hoeft u deze functie niet te gebruiken omdat het framework standaardvalidatie van bestandsnamen biedt en een berichtvak weergeeft als er een ongeldige bestandsnaam is ingevoerd.
Als 1 wordt geretourneerd, blijft het dialoogvenster weergegeven zodat de gebruiker een andere bestandsnaam kan invoeren. Met de dialoogvensterprocedure wordt het dialoogvenster gesloten als de return 0 is. Andere niet-nul-retourwaarden zijn momenteel gereserveerd en mogen niet worden gebruikt.
CFileDialog::OnFolderChange
Overschrijf deze functie om het WM_NOTIFYCDN_FOLDERCHANGE bericht af te handelen.
virtual void OnFolderChange();
Opmerkingen
Het meldingsbericht wordt verzonden wanneer een nieuwe map wordt geopend in het dialoogvenster Openen of Opslaan als.
Er wordt alleen een melding verzonden als het dialoogvenster is gemaakt met de stijl OFN_EXPLORER. Zie CDN_FOLDERCHANGE voor meer informatie over de melding. Zie de structuur OPENFILENAME en de dialoogvensters Openen en Opslaan als voor informatie over de stijl OFN_EXPLORER.
CFileDialog::OnInitDone
Overschrijf deze functie om het WM_NOTIFY CDN_INITDONE bericht af te handelen.
virtual void OnInitDone();
Opmerkingen
Het systeem verzendt dit meldingsbericht wanneer het systeem klaar is met het rangschikken van besturingselementen in het dialoogvenster Openen of Opslaan als om ruimte te maken voor de besturingselementen van het onderliggende dialoogvenster.
Het systeem verzendt dit alleen als het dialoogvenster is gemaakt met de stijl OFN_EXPLORER. Zie CDN_INITDONE voor meer informatie over de melding. Zie de structuur OPENFILENAME en de dialoogvensters Openen en Opslaan als voor informatie over de stijl OFN_EXPLORER.
Opmerking
Dialoogvensters voor windows Vista- of nieuwerstijlbestanden bieden geen ondersteuning voor deze functie. Als u deze functie probeert te gebruiken in een dialoogvenster met een Windows Vista- of hogerstijlbestand, wordt CNotSupportedException gegooid.
CFileDialog::OnItemSelected
Aangeroepen wanneer het containeritem is geselecteerd.
virtual void OnItemSelected(
DWORD dwIDCtl,
DWORD dwIDItem);
Parameterwaarden
dwIDCtl
De id van het containerbeheer.
dwIDItem
De id van het item.
Opmerkingen
CFileDialog::OnLBSelChangedNotify
Deze functie wordt aangeroepen wanneer de huidige selectie in een keuzelijst op het punt staat te veranderen.
virtual void OnLBSelChangedNotify(
UINT nIDBox,
UINT iCurSel,
UINT nCode);
Parameterwaarden
nIDBox
De id van de keuzelijst of keuzelijst met invoervak waarin de selectie is opgetreden.
iCurSel
De index van de huidige selectie.
nCode
De meldingscode van het besturingselement. Deze parameter moet een van de volgende waarden hebben:
CD_LBSELCHANGE Hiermee geeft u iCurSel is het geselecteerde item in een keuzelijst met één keuzelijst.
CD_LBSELSUB Geeft aan dat iCurSel niet meer is geselecteerd in een keuzelijst met meerdere selecties.
CD_LBSELADD Geeft aan dat iCurSel is geselecteerd in een keuzelijst met meerdere selecties.
CD_LBSELNOITEMS Geeft aan dat er geen selectie bestaat in een keuzelijst met meerdere selecties.
Opmerkingen
Overschrijf deze functie om aangepaste verwerking van selectiewijzigingen in de keuzelijst te bieden. U kunt deze functie bijvoorbeeld gebruiken om de toegangsrechten of datum en laatste wijziging weer te geven van elk bestand dat de gebruiker selecteert.
CFileDialog::OnShareViolation
Overschrijf deze functie om aangepaste verwerking van schendingen van aandelen te bieden.
virtual UINT OnShareViolation(LPCTSTR lpszPathName);
Parameterwaarden
lpszPathName
Het pad van het bestand waarop de schending van de share is opgetreden.
Retourwaarde
Een van de volgende waarden:
OFN_SHAREFALLTHROUGH De bestandsnaam wordt geretourneerd vanuit het dialoogvenster.
OFN_SHARENOWARN Er moet geen verdere actie worden ondernomen.
OFN_SHAREWARN De gebruiker ontvangt het standaardwaarschuwingsbericht voor deze fout.
Opmerkingen
Normaal gesproken hoeft u deze functie niet te gebruiken omdat het framework standaardcontrole van schendingen van delen biedt en een berichtvak weergeeft als er sprake is van een schending van een share.
Als u de controle op schendingen van delen wilt uitschakelen, gebruikt u de bitwise OR-operator om de vlag OFN_SHAREAWARE te combineren met m_ofn.Flags.
CFileDialog::OnTypeChange
Overschrijf deze functie om het WM_NOTIFYCDN_TYPECHANGE bericht af te handelen.
virtual void OnTypeChange();
Opmerkingen
Het meldingsbericht wordt verzonden wanneer de gebruiker een nieuw bestandstype selecteert in de lijst met bestandstypen in het dialoogvenster Openen of Opslaan als.
Er wordt alleen een melding verzonden als het dialoogvenster is gemaakt met de stijl OFN_EXPLORER. Zie CDN_TYPECHANGE voor meer informatie over de melding. Zie de structuur OPENFILENAME en de dialoogvensters Openen en Opslaan als voor informatie over de stijl OFN_EXPLORER.
CFileDialog::RemoveControlItem
Hiermee verwijdert u een item uit een containerbesturing in het dialoogvenster.
HRESULT RemoveControlItem(
DWORD dwIDCtl,
DWORD dwIDItem);
Parameterwaarden
dwIDCtl
De id van het containerbeheer waaruit het item moet worden verwijderd.
dwIDItem
De id van het item.
Opmerkingen
CFileDialog::SetCheckButtonState
Hiermee stelt u de huidige status van een selectievakjeknop (selectievakje) in het dialoogvenster in.
HRESULT SetCheckButtonState(
DWORD dwIDCtl,
BOOL bChecked);
Parameterwaarden
dwIDCtl
De id van het selectievakje.
bChecked
De status van het selectievakje. TRUE geeft aan dat de controle is ingeschakeld; FALSE geeft aan dat deze optie niet is ingeschakeld.
Opmerkingen
CFileDialog::SetControlItemState
Hiermee stelt u de huidige status van een item in een containerbesturing in het dialoogvenster in.
HRESULT SetControlItemState(
DWORD dwIDCtl,
DWORD dwIDItem,
CDCONTROLSTATEF dwState);
Parameterwaarden
dwIDCtl
De id van het containerbeheer.
dwIDItem
De id van het item.
dwState
Een of meer waarden uit de opsomming CDCONTROLSTATE die de nieuwe status van het besturingselement aangeven.
Opmerkingen
CFileDialog::SetControlItemText
Hiermee stelt u de tekst van een besturingselementitem in. Bijvoorbeeld de tekst die bij een keuzerondje of een item in een menu hoort.
HRESULT SetControlItemText(
DWORD dwIDCtl,
DWORD dwIDItem,
const CString& strLabel);
Parameterwaarden
dwIDCtl
De id van het containerbeheer.
dwIDItem
De id van het item.
strLabel
De tekst van het item.
Opmerkingen
CFileDialog::SetControlLabel
Hiermee stelt u de tekst in die is gekoppeld aan een besturingselement, zoals knoptekst of een label voor een invoervak.
HRESULT SetControlLabel(
DWORD dwIDCtl,
const CString& strLabel);
Parameterwaarden
dwIDCtl
De id van het besturingselement.
strLabel
De naam van het besturingselement.
Opmerkingen
CFileDialog::SetControlState
Hiermee stelt u de huidige zichtbaarheid en ingeschakelde statussen van een bepaald besturingselement in.
HRESULT SetControlState(
DWORD dwIDCtl,
CDCONTROLSTATEF dwState);
Parameterwaarden
dwIDCtl
De id van het besturingselement.
dwState
Een of meer waarden uit de OPSOMMING CDCONTROLSTATE die de huidige status van het besturingselement aangeven.
Opmerkingen
CFileDialog::SetControlText
Roep deze methode aan om de tekst voor het opgegeven besturingselement in te stellen in een dialoogvenster Openen of Opslaan als in explorer.
void SetControlText(
int nID,
LPCSTR lpsz);
void SetControlText(
int nID,
const wchar_t *lpsz);
Parameterwaarden
nID
[in] De id van het besturingselement waarvoor de tekst moet worden ingesteld.
lpsz-
[in] Een aanwijzer naar de tekenreeks die de tekst bevat die moet worden ingesteld voor het besturingselement.
Opmerkingen
Beide versies van deze functie zijn geldig voor toepassingen die Unicode gebruiken. Alleen de versie met het LPCSTR-type is echter geldig voor toepassingen die gebruikmaken van ANSI.
Als u deze methode wilt gebruiken, moet u het dialoogvenster maken met de stijl OFN_EXPLORER. Anders mislukt de functie met een assertie.
CFileDialog::SetDefExt
Roep deze functie aan om de standaardbestandsextensie in te stellen voor het dialoogvenster Openen of Opslaan als.
void SetDefExt(LPCSTR lpsz);
Parameterwaarden
lpsz-
Een aanwijzer naar een tekenreeks met de standaardextensie die moet worden gebruikt voor het dialoogvensterobject. Deze tekenreeks mag geen punt (.) bevatten.
Opmerkingen
Het dialoogvenster moet zijn gemaakt met de stijl OFN_EXPLORER; anders mislukt de functie met een assertie.
CFileDialog::SetEditBoxText
Hiermee stelt u de huidige tekst in een besturingselement voor een invoervak in.
HRESULT SetEditBoxText(
DWORD dwIDCtl,
const CString& strText);
Parameterwaarden
dwIDCtl
De id van het invoervak.
strText
De tekstwaarde.
Opmerkingen
CFileDialog::SetProperties
Biedt een eigenschappenarchief waarmee de standaardwaarden worden gedefinieerd die moeten worden gebruikt voor het item dat wordt opgeslagen.
BOOL SetProperties(LPCWSTR lpszPropList);
Parameterwaarden
lpszPropList
Een lijst met vooraf gedefinieerde eigenschappen, gescheiden door ';'. Zie de sectie Vlaggen van OPENFILENAME voor een lijst met de vlaggen.
Opmerkingen
CFileDialog::SetSelectedControlItem
Hiermee stelt u de geselecteerde status van een bepaald item in een keuzerondjegroep of een keuzelijst met invoervak in het dialoogvenster in.
HRESULT SetSelectedControlItem(
DWORD dwIDCtl,
DWORD dwIDItem);
Parameterwaarden
dwIDCtl
De id van het containerbeheer.
dwIDItem
De id van het item dat de gebruiker in het besturingselement heeft geselecteerd.
Opmerkingen
CFileDialog::SetTemplate
Hiermee stelt u de dialoogvenstersjabloon voor het CFileDialog-object in.
void SetTemplate(
UINT nWin3ID,
UINT nWin4ID);
void SetTemplate(
LPCTSTR lpWin3ID,
LPCTSTR lpWin4ID);
Parameterwaarden
nWin3ID
[in] Bevat het id-nummer van de sjabloonresource voor het niet-Explorer-object CFileDialog . Deze sjabloon wordt alleen gebruikt in Windows NT 3.51 of wanneer de stijl OFN_EXPLORER niet aanwezig is.
nWin4ID
[in] Bevat het id-nummer van de sjabloonresource voor het Explorer-object CFileDialog . Deze sjabloon wordt alleen gebruikt in Windows NT 4.0 en nieuwere versies, Windows 95 en latere versies of wanneer de stijl OFN_EXPLORER aanwezig is.
lpWin3ID
[in] Bevat de naam van de sjabloonresource voor het niet-Explorer-object CFileDialog . Deze sjabloon wordt alleen gebruikt in Windows NT 3.51 of wanneer de stijl OFN_EXPLORER niet aanwezig is.
lpWin4ID
[in] Bevat de naam van de sjabloonresource van het Explorer-object CFileDialog . Deze sjabloon wordt alleen gebruikt in Windows NT 4.0 en nieuwere versies, Windows 95 en latere versies of wanneer de stijl OFN_EXPLORER aanwezig is.
Opmerkingen
Het systeem gebruikt slechts één van de opgegeven sjablonen. Het systeem bepaalt op basis van de aanwezigheid van de OFN_EXPLORER stijl en het besturingssysteem waarop de toepassing wordt uitgevoerd. Door zowel een niet-Verkenner- als Verkenner-sjabloon op te geven, is het eenvoudig om Windows NT 3.51, Windows NT 4.0 en latere versies en Windows 95 en latere versies te ondersteunen.
Opmerking
Dialoogvensters voor windows Vista- of latere stijlbestanden bieden geen ondersteuning voor deze functie. Als u deze functie probeert te gebruiken in een dialoogvenster met een windows Vista- of hogerstijlbestand, wordt CNotSupportedException weergegeven. Een alternatief is het gebruik van een aangepast dialoogvenster. Zie IFileDialogCustomize voor meer informatie over het gebruik van een aangepast CFileDialogbestand.
CFileDialog::StartVisualGroup
Hiermee declareert u een visuele groep in het dialoogvenster. Volgende aanroepen naar een 'add'-methode voegen deze elementen toe aan deze groep.
HRESULT StartVisualGroup(
DWORD dwIDCtl,
const CString& strLabel);
Parameterwaarden
dwIDCtl
De id van de visualgroep.
strLabel
De groepsnaam.
Opmerkingen
CFileDialog::UpdateOFNFromShellDialog
Hiermee wordt de m_ofn gegevensstructuur van het CFileDialog bijgewerkt op basis van de huidige status van het interne object.
void UpdateOFNFromShellDialog();
Opmerkingen
In versies van Windows vóór Windows Vista werd de gegevensstructuur OPENFILENAME continu gesynchroniseerd met de status van de CFileDialog. Wijzigingen in de m_ofn lidvariabele hebben rechtstreeks invloed op de status van het dialoogvenster. Daarnaast zijn alle wijzigingen in de status van het dialoogvenster onmiddellijk bijgewerkt met de variabele m_ofn lid.
In Windows Vista of hoger wordt de m_ofn gegevensstructuur niet automatisch bijgewerkt. Om de nauwkeurigheid van de gegevens in de m_ofn lidvariabele te garanderen, moet u de UpdateOFNFromShellDialog functie aanroepen voordat u toegang krijgt tot de gegevens. Windows roept deze functie automatisch aan tijdens de verwerking van IFileDialog::OnFileOK.
Zie CFileDialog Class voor meer informatie over het gebruik van de CFileDialog klasse onder Windows Vista of hoger.
Example
In dit voorbeeld wordt de update bijgewerkt CFileDialog voordat deze wordt weergegeven. Voordat u de m_ofn lidvariabele bijwerkt, moeten we deze synchroniseren met de huidige status van het dialoogvenster.
// 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();