CFileDialog Sınıfı
Dosya açma veya dosya kaydetme işlemleri için kullanılan ortak iletişim kutusunu kapsüller.
Sözdizimi
class CFileDialog : public CCommonDialog
Üyeler
Ortak Oluşturucular
Veri Akışı Adı | Açıklama |
---|---|
CFileDialog::CFileDialog | Bir CFileDialog nesne oluşturur. |
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
CFileDialog::AddCheckButton | İletişim kutusuna bir onay düğmesi ekler. |
CFileDialog::AddComboBox | İletişim kutusuna birleşik giriş kutusu ekler. |
CFileDialog::AddControlItem | İletişim kutusundaki kapsayıcı denetimine öğe ekler. |
CFileDialog::AddEditBox | İletişim kutusuna bir düzenleme kutusu ekler. |
CFileDialog::AddMenu | İletişim kutusuna bir menü ekler. |
CFileDialog::AddPlace | Aşırı yüklendi. Kullanıcının öğeleri açması veya kaydetmesi için kullanılabilecek yerler listesine bir klasör ekler. |
CFileDialog::AddPushButton | İletişim kutusuna bir düğme ekler. |
CFileDialog::AddRadioButtonList | İletişim kutusuna bir seçenek düğmesi (radyo düğmesi olarak da bilinir) grubu ekler. |
CFileDialog::AddSeparator | İletişim kutusuna bir ayırıcı ekler. |
CFileDialog::AddText | İletişim kutusuna metin içeriği ekler. |
CFileDialog::ApplyOFNToShellDialog | öğesinin CFileDialog durumunu üye değişkeninde m_ofn depolanan parametreler ve bayraklarla eşleşecek şekilde güncelleştirir. |
CFileDialog::D oModal | İletişim kutusunu görüntüler ve kullanıcının seçim yapmasını sağlar. |
CFileDialog::EnableOpenDropDown | İletişim kutusundaki Aç veya Kaydet düğmesinde açılan listeyi etkinleştirir. |
CFileDialog::EndVisualGroup | İletişim kutusundaki bir görsel grubuna öğe eklemeyi durdurur. |
CFileDialog::GetCheckButtonState | İletişim kutusundaki onay düğmesinin (onay kutusu) geçerli durumunu alır. |
CFileDialog::GetControlItemState | İletişim kutusunda bulunan kapsayıcı denetimindeki bir öğenin geçerli durumunu alır. |
CFileDialog::GetControlState | Belirli bir denetimin geçerli görünürlüğünü ve etkin durumlarını alır. |
CFileDialog::GetEditBoxText | Düzenleme kutusu denetimindeki geçerli metni alır. |
CFileDialog::GetFileExt | Seçili dosyanın uzantısını döndürür. |
CFileDialog::GetFileName | Seçili dosyanın dosya adını döndürür. |
CFileDialog::GetFileTitle | Seçili dosyanın başlığını döndürür. |
CFileDialog::GetFolderPath | Gezgin stilinde bir Ortak Aç veya Farklı Kaydet iletişim kutusu için açık durumdaki klasörün veya dizinin yolunu alır. |
CFileDialog::GetIFileDialogCustomize | Özelleştirilmiş CFileDialog bir nesne için iç COM nesnesini alır. |
CFileDialog::GetIFileOpenDialog | Dosya aç iletişim kutusu olarak kullanılan bir CFileDialog için iç COM nesnesini alır. |
CFileDialog::GetIFileSaveDialog | Dosyayı kaydet iletişim kutusu olarak kullanılan bir CFileDialog için iç COM nesnesini alır. |
CFileDialog::GetNextPathName | Bir sonraki seçili dosyanın tam yolunu döndürür. |
CFileDialog::GetOFN | Nesnesinin OPENFILENAME yapısını CFileDialog alır. |
CFileDialog::GetPathName | Seçili dosyanın tam yolunu döndürür. |
CFileDialog::GetReadOnlyPref | Seçili dosyanın salt okunur durumunu döndürür. |
CFileDialog::GetResult | Kullanıcının iletişim kutusunda yaptığı seçimi alır. |
CFileDialog::GetResults | Birden çok seçime izin veren bir iletişim kutusunda kullanıcının seçimlerini alır. |
CFileDialog::GetSelectedControlItem | İletişim kutusundaki belirtilen kapsayıcı denetimlerinden belirli bir öğeyi alır. |
CFileDialog::GetStartPosition | Dosya adı listesinin ilk öğesinin konumunu döndürür. |
CFileDialog::HideControl | Gezgin stilinde bir Ortak Aç veya Farklı Kaydet iletişim kutusunda belirtilen denetimi gizler . |
CFileDialog::IsPickFoldersMode | Geçerli iletişim kutusunun klasör seçici modunda olup olmadığını belirler. |
CFileDialog::MakeProminent | İletişim kutusuna, eklenen diğer denetimlerle karşılaştırıldığında öne çıkacak şekilde bir denetim yerleştirir. |
CFileDialog::RemoveControlItem | İletişim kutusundaki kapsayıcı denetiminden bir öğeyi kaldırır. |
CFileDialog::SetCheckButtonState | İletişim kutusundaki onay düğmesinin (onay kutusu) geçerli durumunu ayarlar. |
CFileDialog::SetControlItemState | İletişim kutusunda bulunan kapsayıcı denetimindeki bir öğenin geçerli durumunu ayarlar. |
CFileDialog::SetControlItemText | Denetim öğesinin metnini ayarlar. Örneğin, bir radyo düğmesine veya menüdeki bir öğeye eşlik eden metin. |
CFileDialog::SetControlLabel | Düğme metni veya düzenleme kutusu etiketi gibi bir denetimle ilişkili metni ayarlar. |
CFileDialog::SetControlState | Belirli bir denetimin geçerli görünürlüğünü ve etkin durumlarını ayarlar. |
CFileDialog::SetControlText | Gezgin stilinde bir Ortak Aç veya Farklı Kaydet iletişim kutusunda belirtilen denetimin metnini ayarlar. |
CFileDialog::SetDefExt | Gezgin stilinde Ortak Aç veya Farklı Kaydet iletişim kutusu için varsayılan dosya adı uzantısını ayarlar. |
CFileDialog::SetEditBoxText | Düzenleme kutusu denetimindeki geçerli metni ayarlar. |
CFileDialog::SetProperties | Kaydedilen öğe için kullanılacak varsayılan değerleri tanımlayan bir özellik deposu sağlar. |
CFileDialog::SetSelectedControlItem | Bir seçenek düğmesi grubundaki veya iletişim kutusunda bulunan birleşik giriş kutusundaki belirli bir öğenin seçili durumunu ayarlar. |
CFileDialog::SetTemplate | Nesne için CFileDialog iletişim kutusu şablonunu ayarlar. |
CFileDialog::StartVisualGroup | İletişim kutusunda bir görsel grubu bildirir. Herhangi bir "add" yöntemine yapılan sonraki çağrılar bu öğeleri bu gruba ekler. |
CFileDialog::UpdateOFNFromShellDialog | Üye değişkeninde m_ofn depolanan verileri, dosya iletişim kutusunun geçerli durumuyla eşleşecek şekilde güncelleştirir. |
Korumalı Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
CFileDialog::OnButtonClicked | Düğmeye tıklandığında çağrılır. |
CFileDialog::OnCheckButtonToggled | Onay kutusu işaretli/işaretsiz olduğunda çağrılır. |
CFileDialog::OnControlActivating | Denetim etkinken çağrılır. |
CFileDialog::OnFileNameChange | WM_NOTIFY CDN_SELCHANGE iletisini işler. |
CFileDialog::OnFileNameOK | İletişim kutusuna girilen dosya adını doğrular. |
CFileDialog::OnFolderChange | WM_NOTIFY CDN_FOLDERCHANGE iletisini işler. |
CFileDialog::OnInitDone | WM_NOTIFY CDN_INITDONE iletisini işler. |
CFileDialog::OnItemSelected | Kapsayıcı öğesi seçilirken çağrılır. |
CFileDialog::OnLBSelChangedNotify | Dosya seçimi değiştiğinde özel eylemler gerçekleştirmenizi sağlar. |
CFileDialog::OnShareViolation | Paylaşım ihlallerini işler. |
CFileDialog::OnTypeChange | WM_NOTIFY CDN_TYPECHANGE iletisini işler. |
Ortak Veri Üyeleri
Veri Akışı Adı | Açıklama |
---|---|
CFileDialog::m_ofn | Windows OPENFILENAME yapısı. Temel dosya iletişim kutusu parametrelerine erişim sağlar. |
Açıklamalar
Yaygın dosya iletişim kutuları, Dosya Aç ve Farklı Kaydet gibi dosya seçimi iletişim kutularını Windows standartlarıyla tutarlı bir şekilde uygulamanıza olanak tanır.
Sağlanan oluşturucuda olduğu gibi kullanabilir CFileDialog
veya kendi iletişim kutusu sınıfınızı CFileDialog
türetebilir ve gereksinimlerinize uygun bir oluşturucu yazabilirsiniz. Her iki durumda da, bu iletişim kutuları standart MFC iletişim kutuları gibi davranır çünkü bunlar CCommonDialog Sınıfından türetilir. CFileDialog
, Windows'ta bulunan COMMDLG.DLL dosyasına dayanır.
'nin CFileDialog
Windows Vista veya sonraki sürümleriyle hem görünümü hem de işlevselliği Windows'un önceki sürümlerinden farklıdır. Varsayılan ayar CFileDialog
, bir program derlenip Windows Vista veya sonraki bir sürüm altında çalıştırılırsa kod değişikliği olmadan yeni Windows Vista veya sonraki bir stili otomatik olarak kullanır. Bu otomatik güncelleştirmeyi el ile geçersiz kılmak için oluşturucudaki bVistaStyle parametresini kullanın. Otomatik güncelleştirmenin özel durumu özelleştirilmiş iletişim kutularıdır. Bunlar yeni stile dönüştürülmeyecek. Oluşturucu hakkında daha fazla bilgi için bkz . CFileDialog::CFileDialog.
Not
Denetim kimliği sistemi, bir kullandığınızda CFileDialog
Windows Vista veya sonraki sürümlerinden windows'un önceki sürümlerinden farklıdır. Projenizi Windows'un önceki bir sürümünden taşımadan önce koddaki denetimlere CFileDialog
yapılan tüm başvuruları güncelleştirmeniz gerekir.
Bazı CFileDialog
yöntemler Windows Vista veya sonraki sürümler altında desteklenmez. Yöntemin desteklenip desteklenmediği hakkında bilgi için tek tek yöntem konusuna bakın. Ayrıca, aşağıdaki devralınan işlevler Windows Vista veya sonraki sürümler altında desteklenmez:
sınıfı için CFileDialog
windows iletileri, kullandığınız işletim sistemine göre değişir. Örneğin, Windows XP sınıfı için CDialog::OnCancel ve CDialog::OnOK'yi CFileDialog
desteklemez. Ancak, Windows Vista ve sonraki işletim sistemleri bunları destekler. Oluşturulan farklı iletiler ve bunların alınma sırası hakkında daha fazla bilgi için bkz . CFileDialog Örneği: Olay Sırasını Günlüğe Kaydetme.
Bir CFileDialog
nesneyi kullanmak için önce oluşturucuyu CFileDialog
kullanarak nesnesini oluşturun. İletişim kutusu oluşturulduktan sonra, iletişim kutusu denetimlerinin değerlerini veya durumlarını başlatmak için CFileDialog::m_ofn yapısındaki herhangi bir değeri ayarlayabilir veya değiştirebilirsiniz. Yapısı m_ofn
türündedir OPENFILENAME
. Daha fazla bilgi için Windows SDK'sında OPENFILENAME yapısına bakın.
İletişim kutusu denetimlerini başlatdıktan sonra, kullanıcının yolu ve dosya adını yazabilmesi için iletişim kutusunu görüntülemek için CFileDialog::D oModal yöntemini çağırın. DoModal
kullanıcının Tamam (IDOK) veya İptal (IDCANCEL) düğmesine tıklayıp tıklamadığını döndürür. IDOK döndürürse DoModal
, kullanıcının yerleştirdiği bilgileri almak için ortak üye işlevlerinden birini CFileDialog
kullanabilirsiniz.
Not
Windows Vista veya sonraki bir sürüm altında, IFileDialog::SetFileTypes'a yapılan birden çok çağrı bir hataya neden olur. Bir örneğinin ikinci çağrısı SetFileTypes
, Windows Vista veya sonraki sürümlerde CFileDialog
E_UNEXPECTED döndürür. Bazı CFileDialog
yöntem işlevleri çağrısında bulunur SetFileTypes
. Örneğin, aynı örneği CFileDialog
için iki çağrısı CFileDialog::DoModal
ASSERT oluşturur.
CFileDialog
paylaşım ihlallerini, dosya adı doğrulamayı ve liste kutusu değişiklik bildirimini özel olarak işlemenizi sağlayan birkaç korumalı üye içerir. Bu korumalı üyeler, varsayılan işleme otomatik olarak gerçekleştirildiğinden çoğu uygulamanın kullanması gerekmeyen geri çağırma işlevleridir. Bu işlevler için ileti eşleme girdileri, standart sanal işlevler olduğundan gerekli değildir.
İletişim kutusunun başlatılması sırasında bir hata oluşup oluşmadığını belirlemek ve hata hakkında daha fazla bilgi edinmek için Windows CommDlgExtendedError işlevini kullanabilirsiniz.
Nesnelerin yok edilmesi CFileDialog
otomatik olarak işlenir. CDialog::EndDialog'u çağırmanız gerekmez.
Kullanıcının birden çok dosya seçmesine izin vermek için çağrısından DoModal
önce OFN_ALLOWMULTISELECT bayrağını ayarlayın. Birden çok dosya adının döndürülen listesine uyum sağlamak için kendi dosya adı arabelleğinizi sağlamanız gerekir. Bunu yapmak için, öğesini oluşturacak ancak çağırmadan DoModal
önce ayırdığınız CFileDialog
bir arabelleğe yönelik bir işaretçiyle değiştirebilirsinizm_ofn.lpstrFile
.
Ayrıca, arabellekte tarafından m_ofn.lpstrFile
işaret edilen karakter sayısını kullanarak ayarlamanız m_ofn.nMaxFile
gerekir. Seçilecek n
en fazla dosya sayısını olarak ayarlarsanız, gerekli arabellek boyutu olur n * (_MAX_PATH + 1) + 1
. Arabellekte döndürülen ilk öğe, dosyaların seçildiği klasörün yoludur. Windows Vista veya sonraki stil iletişim kutularında, dizin ve dosya adı dizeleri null olarak sonlandırılır ve son dosya adından sonra fazladan null karakter kullanılır. Bu biçim, Gezgin stili iletişim kutularının boşluk içeren uzun dosya adları döndürmesini sağlar. Eski stildeki iletişim kutularında, dizin ve dosya adı dizeleri boşluklarla ayrılır ve işlev, boşluklu dosya adları için kısa dosya adları kullanır.
Aşağıdaki örnekte birden çok dosya adını almak ve listelemek için arabelleğin nasıl kullanılacağı gösterilmektedir.
#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++;
}
}
Birden çok dosya adı seçen kullanıcıya yanıt olarak arabellek boyutunu değiştirmek için, öğesinden CFileDialog
yeni bir sınıf türetmeli ve CFileDialog::OnFileNameChange yöntemini geçersiz kılmalısınız.
öğesinden CFileDialog
yeni bir sınıf türetirseniz, iletileri işlemek için bir ileti eşlemesi kullanabilirsiniz. Varsayılan ileti işlemeyi genişletmek için öğesinden CFileDialog
bir sınıf türetin, yeni sınıfa bir ileti eşlemesi ekleyin ve yeni iletiler için üye işlevleri sağlayın. İletişim kutusunu özelleştirmek için bir kanca işlevi sağlamanız gerekmez.
İletişim kutusunu özelleştirmek için, öğesinden CFileDialog
bir sınıf türetin, özel bir iletişim kutusu şablonu sağlayın ve genişletilmiş denetimlerden gelen bildirim iletilerini işlemek için bir ileti eşlemesi ekleyin. İşlenmemiş iletileri temel sınıfa geçirin. Kanca işlevini özelleştirmeniz gerekmez.
windows vista veya sonraki stilini CFileDialog
kullanırken ileti eşlemeleri ve iletişim kutusu şablonları kullanamazsınız. Bunun yerine, benzer işlevler için COM arabirimlerini kullanmanız gerekir.
kullanma hakkında daha fazla bilgi için CFileDialog
bkz . Ortak İletişim Kutusu Sınıfları.
Devralma Hiyerarşisi
CFileDialog
Gereksinimler
Üst bilgi: afxdlgs.h
CFileDialog::AddCheckButton
İletişim kutusuna bir onay düğmesi ekler.
HRESULT AddCheckButton(
DWORD dwIDCtl,
const CString& strLabel,
BOOL bChecked);
Parametreler
dwIDCtl
Eklenecek onay düğmesinin kimliği.
strLabel
Onay düğmesi adı.
b İşaretlendi
Onay düğmesinin geçerli durumunu gösteren boole değeri. İşaretlenirse DOĞRU; FALSE aksi takdirde
Açıklamalar
CFileDialog::AddComboBox
İletişim kutusuna birleşik giriş kutusu ekler.
HRESULT AddComboBox(DWORD dwIDCtl);
Parametreler
dwIDCtl
Eklenecek birleşik giriş kutusunun kimliği.
Açıklamalar
CFileDialog::AddControlItem
İletişim kutusundaki kapsayıcı denetimine öğe ekler.
HRESULT AddControlItem(
DWORD dwIDCtl,
DWORD dwIDItem,
const CString& strLabel);
Parametreler
dwIDCtl
Öğenin ekleneceği kapsayıcı denetiminin kimliği.
dwIDItem
Öğenin kimliği.
strLabel
Öğenin metni.
Açıklamalar
CFileDialog::AddEditBox
İletişim kutusuna bir düzenleme kutusu ekler.
HRESULT AddEditBox(
DWORD dwIDCtl,
const CString& strText);
Parametreler
dwIDCtl
Eklenecek düzenleme kutusunun kimliği.
strText
Düzenleme kutusu adı.
Açıklamalar
CFileDialog::AddMenu
İletişim kutusuna bir menü ekler.
HRESULT AddMenu(
DWORD dwIDCtl,
const CString& strLabel);
Parametreler
dwIDCtl
Eklenecek menünün kimliği.
strLabel
Menü adı.
Açıklamalar
CFileDialog::AddPlace
Kullanıcının öğeleri açması veya kaydetmesi için kullanılabilecek yerler listesine bir klasör ekler.
void AddPlace(
LPCWSTR lpszFolder,
FDAP fdap = FDAP_TOP) throw();
void AddPlace(
IShellItem* psi,
FDAP fdap = FDAP_TOP) throw();
Parametreler
lpszFolder
Kullanıcının kullanımına sunulacak klasörün yolu. Bu yalnızca bir klasör olabilir.
fdap
Klasörün listenin içine yerleştirileceği yeri belirtir.
Psi
Kullanıcının kullanımına sunulacak klasörü temsil eden bir IShellItem işaretçisi. Bu yalnızca bir klasör olabilir.
Açıklamalar
CFileDialog::AddPushButton
İletişim kutusuna bir düğme ekler.
HRESULT AddPushButton(
DWORD dwIDCtl,
const CString& strLabel);
Parametreler
dwIDCtl
Eklenecek düğmenin kimliği.
strLabel
Düğme adı.
Açıklamalar
CFileDialog::AddRadioButtonList
İletişim kutusuna bir seçenek düğmesi (radyo düğmesi olarak da bilinir) grubu ekler.
HRESULT AddRadioButtonList(DWORD dwIDCtl);
Parametreler
dwIDCtl
Eklenecek seçenek düğmesi grubunun kimliği.
Açıklamalar
CFileDialog::AddSeparator
İletişim kutusuna bir ayırıcı ekler.
HRESULT AddSeparator(DWORD dwIDCtl);
Parametreler
dwIDCtl
Ayırıcı eklemenin kimliği.
Açıklamalar
CFileDialog::AddText
İletişim kutusuna metin ekler.
HRESULT AddText(
DWORD dwIDCtl,
const CString& strText);
Parametreler
dwIDCtl
Eklenecek metnin kimliği.
strText
Metin adı.
Açıklamalar
CFileDialog::ApplyOFNToShellDialog
CFileDialog'un geçerli durumunu veri yapısında depolanan değerlere m_ofn
göre güncelleştirir.
void ApplyOFNToShellDialog();
Açıklamalar
Windows Vista'nın önceki Windows sürümlerinde, üye OPENFILENAME veri yapısı sürekli olarak durumuyla CFileDialog
eşitlendi. m_ofn üye değişkeninde yapılan tüm değişiklikler iletişim kutusunun durumuna hemen yansıtılır. Ayrıca, iletişim kutusunun durumunda yapılan tüm değişiklikler üye değişkenini m_ofn
hemen güncelleştirir.
Windows Vista veya sonraki sürümlerinde, üye değişkenindeki ve durumundaki m_ofn
değerlerin CFileDialog
eşitlenmesi garanti edilmemektedir. Bu işlev, durumunun CFileDialog
yapıyla eşleşecek şekilde güncelleştirilmeye zorlar m_ofn
. Windows, CFileDialog::D oModal sırasında bu işlevi otomatik olarak çağırır.
Windows Vista veya sonraki bir sürüm altında sınıfı kullanma CFileDialog
hakkında daha fazla bilgi için bkz . CFileDialog Sınıfı.
Örnek
CFileDialog::UpdateOFNFromShellDialog örneğine bakın.
CFileDialog::CFileDialog
Standart bir Windows dosyası iletişim kutusu oluşturmak için bu işlevi çağır.
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);
Parametreler
bOpenFileDialog
[in] Oluşturulacak iletişim kutusunun türünü belirten parametre. Dosya Aç iletişim kutusu oluşturmak için TRUE olarak ayarlayın. Dosya Farklı Kaydet iletişim kutusu oluşturmak için FALSE olarak ayarlayın.
lpszDefExt
[in] Varsayılan dosya adı uzantısı. Kullanıcı Dosya adı kutusuna bilinen bir uzantı (kullanıcının bilgisayarında ilişkisi olan uzantı) içermiyorsa, lpszDefExt tarafından belirtilen uzantı otomatik olarak dosya adına eklenir. Bu parametre NULL ise, uzantı eklenmez.
lpszFileName
[in] Dosya adı kutusunda görüntülenen ilk dosya adı. NULL ise, ilk dosya adı görüntülenmez.
dwFlags
[in] İletişim kutusunu özelleştirmek için kullanabileceğiniz bir veya daha fazla bayrağın birleşimi. Bu bayrakların açıklaması için Windows SDK'sında OPENFILENAME yapısına bakın. Yapı üyesini m_ofn.Flags
değiştirirseniz, varsayılan davranışı olduğu gibi tutmak için değişikliklerinizde bit düzeyinde OR işleci kullanın.
lpszFilter
[in] Dosyaya uygulayabileceğiniz filtreleri belirten bir dizi dize çifti. Dosya filtreleri belirtirseniz, Dosyalar listesinde yalnızca filtre ölçütlerine uyan dosyalar görüntülenir. Dosya filtreleri ile çalışma hakkında daha fazla bilgi için Açıklamalar bölümüne bakın.
pParentWnd
[in] Dosya iletişim kutusunun üst veya sahip penceresinin işaretçisi.
dwSize
[in] Yapının boyutu OPENFILENAME
. Bu değer işletim sistemi sürümüne bağlıdır. MFC, oluşturulacak uygun iletişim kutusunu belirlemek için bu parametreyi kullandı. Varsayılan 0 boyutu, MFC kodunun programın çalıştırıldığı işletim sistemi sürümüne göre kullanılacak doğru iletişim kutusu boyutunu belirleyeceği anlamına gelir.
bVistaStyle
[in] Not Bu parametre Visual Studio 2008 ve sonraki sürümlerinde kullanılabilir ve yeni stil iletişim kutusunun yalnızca Windows Vista veya sonraki sürümlerinde çalışıyorsanız kullanılmasına neden olur.
Dosya iletişim kutusunun stilini belirten parametre. Yeni Vista stili dosya iletişim kutularını kullanmak için TRUE olarak ayarlayın. Aksi takdirde, iletişim kutularının eski stili kullanılır. Vista altında çalıştırma hakkında daha fazla bilgi için Açıklamalar bölümüne bakın.
Açıklamalar
bOpenFileDialog değerine bağlı olarak Dosya Aç veya Farklı Kaydet iletişim kutusu oluşturulur.
lpszDefExt kullanarak varsayılan bir uzantı belirtmek beklediğiniz davranışı üretmeyebilir, çünkü kullanıcının bilgisayarında hangi uzantıların dosya ilişkilendirmeleri olduğu nadiren tahmin edilebilir. Varsayılan uzantının eklenmesi üzerinde daha fazla denetime ihtiyacınız varsa, öğesinden CFileDialog
kendi sınıfınızı türetebilir ve kendi uzantı işlemenizi gerçekleştirmek için yöntemini geçersiz kılabilirsiniz CFileDialog::OnFileNameOK
.
Kullanıcının birden çok dosya seçmesini sağlamak için DoModal'ı çağırmadan önce OFN_ALLOWMULTISELECT bayrağını ayarlayın. Birden çok dosya adının döndürülen listesini depolamak için kendi dosya adı arabelleğinizi sağlamanız gerekir. CFileDialog'u oluşturdıktan sonra ancak çağrısından DoModal
önce öğesini ayırdığınız arabelleğe yönelik bir işaretçiyle değiştirerek m_ofn.lpstrFile
bunu yapın. Ayrıca, arabellekte tarafından m_ofn.lpstrFile
işaret edilen karakter sayısıyla ayarlamanız m_ofn.nMaxFile
gerekir. Seçilecek en fazla dosya sayısını n olarak ayarlarsanız, gerekli arabellek boyutu *(_MAX_PATH + 1) + 1'dir n
. Örneğin:
#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++;
}
}
Kullanıcının fare veya klavye kullanarak Gezgin stilindeki bir iletişim kutusunu yeniden boyutlandırmasını sağlamak için OFN_ENABLESIZING bayrağını ayarlayın. Bu bayrağın ayarlanması yalnızca bir kanca yordamı veya özel şablon sağlarsanız gereklidir. Bayrak yalnızca Gezgin stilinde bir iletişim kutusuyla çalışır; eski stil iletişim kutuları yeniden boyutlandırılamaz.
lpszFilter parametresi, bir dosyanın dosya listesinde görüntülenmesi gereken dosya adı türünü belirlemek için kullanılır. Dize çiftindeki ilk dize filtreyi açıklar; ikinci dize, kullanılacak dosya adı uzantısını gösterir. Sınırlayıcı olarak noktalı virgül (';' karakteri) kullanılarak birden çok uzantı belirtilebilir. Dize iki dikey çubuk karakteri||
() ile sona erer ve ardından null karakter gelir. Bu parametre için bir CString nesnesi de kullanabilirsiniz.
Örneğin, Microsoft Excel kullanıcıların .xlc (grafik) veya .xls (çalışma sayfası) uzantılı dosyaları diğerleriyle birlikte açmasına olanak tanır. Excel filtresi şöyle yazılabilir:
static TCHAR BASED_CODE szFilter[] = _T("Chart Files (*.xlc)|*.xlc|")
_T("Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|")
_T("*.xlc; *.xls|All Files (*.*)|*.*||");
Ancak, yapıyı doğrudan güncelleştirmek OPENFILENAME
için bu dizeyi kullanmayı planlıyorsanız, dizelerinizi dikey çubuklar ('|'
) yerine null karakterle '\0'
sınırlandırmalısınız.
bVistaStyle parametresi yalnızca Windows Vista veya sonraki bir sürüm altında çalışırken geçerlidir. Windows'un önceki sürümlerinde bu parametre yoksayılır. bVistaStyle TRUE olarak ayarlanırsa, Visual Studio 2008 veya üzeri ile bir program derlediğinizde, yeni Vista stili Dosya İletişim Kutusu kullanılır. Aksi takdirde, önceki MFC stili Dosya İletişim Kutusu kullanılır.
İletişim kutusu şablonları bVistaStyle tabanlı iletişim kutuları üzerinde desteklenmez
Örnek
CFileDialog::D oModal örneğine bakın.
CFileDialog::D oModal
Windows ortak dosya iletişim kutusunu görüntülemek ve kullanıcının dosya ve dizinlere göz atmasına ve bir dosya adı girmesine izin vermek için bu işlevi çağırın.
virtual INT_PTR DoModal();
Dönüş Değeri
IDOK veya IDCANCEL. IDCANCEL döndürülürse, bir hata oluşup oluşmadığını belirlemek için Windows CommDlgExtendedError işlevini çağırın.
IDOK ve IDCANCEL, kullanıcının Tamam mı yoksa İptal düğmesini mi seçtiğini gösteren sabitlerdir.
Açıklamalar
Yapının üyelerini m_ofn
ayarlayarak çeşitli dosya iletişim kutusu seçeneklerini başlatmak istiyorsanız, öğesini çağırmadan DoModal
önce ancak iletişim kutusu nesnesi oluşturulduğunda bunu yapmalısınız.
Örneğin, kullanıcının birden çok dosya seçmesine izin vermek istiyorsanız, bu konudaki kod örneğinde gösterildiği gibi çağrısından DoModal
önce OFN_ALLOWMULTISELECT bayrağını ayarlayın.
Kullanıcı iletişim kutusunun Tamam veya İptal düğmelerine tıkladığında veya iletişim kutusunun denetim menüsünden Kapat seçeneğini seçtiğinde, denetim uygulamanıza döndürülür. Ardından, kullanıcının iletişim kutusuna girdiği ayarları veya bilgileri almak için diğer üye işlevlerini çağırabilirsiniz.
DoModal
sınıfından CDialog
geçersiz kılınan bir sanal işlevdir.
Örnek
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
İletişim kutusundaki Aç veya Kaydet düğmesinde açılan listeyi etkinleştirir.
HRESULT EnableOpenDropDown(DWORD dwIDCtl);
Parametreler
dwIDCtl
Açılan listenin kimliği.
Açıklamalar
CFileDialog::EndVisualGroup
İletişim kutusundaki bir görsel grubuna öğe eklemeyi durdurur.
HRESULT EndVisualGroup();
Dönüş Değeri
Başarılı olursa S_OK döndürür; aksi takdirde bir hata değeri.
Açıklamalar
CFileDialog::GetCheckButtonState
İletişim kutusundaki onay düğmesinin (onay kutusu) geçerli durumunu alır.
HRESULT GetCheckButtonState(
DWORD dwIDCtl,
BOOL& bChecked);
Parametreler
dwIDCtl
Onay kutusunun kimliği.
b İşaretlendi
Onay kutusunun durumu. TRUE işaretli olduğunu gösterir; YANLIŞ, işaretsiz olduğunu gösterir.
Açıklamalar
CFileDialog::GetControlItemState
İletişim kutusunda bulunan kapsayıcı denetimindeki bir öğenin geçerli durumunu alır.
HRESULT GetControlItemState(
DWORD dwIDCtl,
DWORD dwIDItem,
CDCONTROLSTATEF& dwState);
Parametreler
dwIDCtl
Kapsayıcı denetiminin kimliği.
dwIDItem
Öğenin kimliği.
dwState
CDCONTROLSTATE sabit listesinden denetimin geçerli durumunu gösteren daha fazla değerden birini alan bir değişken başvurusu.
Açıklamalar
CFileDialog::GetControlState
Belirli bir denetimin geçerli görünürlüğünü ve etkin durumlarını alır.
HRESULT GetControlState(
DWORD dwIDCtl,
CDCONTROLSTATEF& dwState);
Parametreler
dwIDCtl
Denetimin kimliği.
dwState
CDCONTROLSTATE sabit listesinden denetimin geçerli durumunu gösteren bir veya daha fazla değer alan bir değişken başvurusu.
Açıklamalar
CFileDialog::GetEditBoxText
Düzenleme kutusu denetimindeki geçerli metni alır.
HRESULT GetEditBoxText(
DWORD dwIDCtl,
CString& strText);
Parametreler
dwIDCtl
Düzenleme kutusunun kimliği.
strText
Metin değeri.
Açıklamalar
CFileDialog::GetFileExt
İletişim kutusuna girilen dosya adının uzantısını almak için bu işlevi çağırın.
CString GetFileExt() const;
Dönüş Değeri
Dosya adının uzantısı.
Açıklamalar
Örneğin, girilen dosyanın adı DATA.TXT ise , GetFileExt
"TXT" döndürür.
OFN_ALLOWMULTISELECT bayrağı ayarlanmışsa m_ofn.Flags
, bu dize null olarak sonlandırılan dizelerden oluşan bir dizi içerir ve ilk dize, dosya grubunun dizin yolu ve ardından kullanıcı tarafından seçilen tüm dosyaların adları olur. Dosya yol adlarını almak için GetStartPosition ve GetNextPathName üye işlevlerini kullanın.
CFileDialog::GetFileName
İletişim kutusuna girilen dosya adının adını almak için bu işlevi çağırın.
CString GetFileName() const;
Dönüş Değeri
Dosyanın adı.
Açıklamalar
Dosyanın adı hem ön eki hem de uzantıyı içerir. Örneğin, GetFileName
"METNEÇEVİr. C:\FILES\TEXT.DAT dosyası için DAT" yazın.
Bayrağı ayarlanmışsam_ofn.Flags
, dosya yol adını almak için GetStartPosition ve GetNextPathName'i çağırmanız gerekir.OFN_ALLOWMULTISELECT
CFileDialog::GetFileTitle
İletişim kutusuna girilen dosyanın başlığını almak için bu işlevi çağırın.
CString GetFileTitle() const;
Dönüş Değeri
Dosyanın başlığı.
Açıklamalar
Dosyanın başlığı, yolu veya uzantısı olmadan yalnızca ön ekini içerir. Örneğin, GetFileTitle
C:\FILES\TEXT.DAT dosyası için "METNEÇEVİr" döndürür.
OFN_ALLOWMULTISELECT bayrağı ayarlanmışsa m_ofn.Flags
, bu dize null olarak sonlandırılan dizelerden oluşan bir dizi içerir ve ilk dize, dosya grubunun dizin yolu ve ardından kullanıcı tarafından seçilen tüm dosyaların adları olur. Bu nedenle, listedeki bir sonraki dosya adını almak için GetStartPosition ve GetNextPathName üye işlevlerini kullanın.
Örnek
CFileDialog::D oModal örneğine bakın.
CFileDialog::GetFolderPath
Bu üye işlevini çağırarak Açık durumdaki klasörün veya dizinin yolunu Gezgin stilinde Aç veya Farklı Kaydet ortak iletişim kutusuna alın.
CString GetFolderPath() const;
Dönüş Değeri
Şu anda açık olan klasörü veya dizini içeren bir CString nesnesi.
Açıklamalar
İletişim kutusu OFN_EXPLORER stiliyle oluşturulmuş olmalıdır; aksi takdirde yöntemi bir onaylama işlemiyle başarısız olur.
Bu yöntemi yalnızca iletişim kutusu görüntülenirken çağırabilirsiniz. İletişim kutusu kapatıldıktan sonra bu işlev artık çalışmaz ve yöntem bir onaylama işlemiyle başarısız olur.
CFileDialog::GetIFileDialogCustomize
Belirli bir CFileDialog için iç COM nesnesine yönelik bir işaretçi alır.
IFileDialogCustomize* GetIFileDialogCustomize();
Dönüş Değeri
için iç COM nesnesinin işaretçisi CFileDialog
. Bu işaretçiyi uygun şekilde serbest bırakmak sizin sorumluluğunuzdadır.
Açıklamalar
Bu işlevi yalnızca Windows Vista veya üzeri altında bVistaStyle değeri TRUE olarak ayarlanmış bir nesneyle kullanın. bVistaStyle YANLIŞ olduğunda bu işlevi kullanırsanız, yayın modunda NULL döndürür ve hata ayıklama modunda bir onay oluşturur.
Arabirim hakkında IFileDialogCustomize
daha fazla bilgi için bkz . IFileDialogCustomize.
Örnek
Bu örnek, iç COM nesnesini alır. Bu kod örneğini çalıştırmak için Windows Vista veya üzeri altında derlemeniz gerekir.
// 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
Belirli CFileDialog
bir için iç COM nesnesinin işaretçisini alır.
IFileOpenDialog* GetIFileOpenDialog();
Dönüş Değeri
için iç COM nesnesinin işaretçisi CFileDialog
. Bu işaretçiyi uygun şekilde serbest bırakmak sizin sorumluluğunuzdadır.
Açıklamalar
Bu işlevi yalnızca Windows Vista veya üzeri altında bVistaStyle değeri TRUE olarak ayarlanmış bir nesneyle kullanın. Bu işlev, Aç iletişim kutusu değilse CFileDialog
veya bVistaStyle YANLIŞ olarak ayarlandıysa NULL döndürür. Bu son durumda işlev yalnızca yayın modunda NULL döndürür; hata ayıklama modunda onay oluşturur.
Arabirim hakkında IFileOpenDialog
daha fazla bilgi için bkz . IFileOpenDialog.
Örnek
Bu örnek, iç COM nesnesini alır. Bu kodu çalıştırmak için Windows Vista veya üzeri altında derlemeniz gerekir.
// 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
Belirli CFileDialog
bir için iç COM nesnesinin işaretçisini alır.
IFileSaveDialog* GetIFileSaveDialog();
Dönüş Değeri
için iç COM nesnesinin işaretçisi CFileDialog
. Bu işaretçiyi uygun şekilde serbest bırakmak sizin sorumluluğunuzdadır.
Açıklamalar
Bu işlevi yalnızca Windows Vista veya üzeri altında bVistaStyle değeri TRUE olarak ayarlanmış bir nesneyle kullanın. Bu işlev, Kaydet iletişim kutusu değilse CFileDialog
veya bVistaStyle YANLIŞ olarak ayarlandıysa NULL döndürür. Bu son durumda işlev yalnızca yayın modunda NULL döndürür; hata ayıklama modunda onay oluşturur.
Arabirim hakkında IFileSaveDialog
daha fazla bilgi için bkz . IFileSaveDialog.
Örnek
Bu örnek, iç COM nesnesini alır. Bu kod örneğini çalıştırmak için Windows Vista veya üzeri altında derlemeniz gerekir.
// 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
İletişim kutusunda seçilen gruptan sonraki dosya adını almak için bu işlevi çağırın.
CString GetNextPathName(POSITION& pos) const;
Parametreler
Pos
Önceki GetNextPathName
veya GetStartPosition
işlev çağrısı tarafından döndürülen POSITION değerine başvuru. Listenin sonuna ulaşıldıysa NULL.
Dönüş Değeri
Dosyanın tam yolu.
Açıklamalar
Dosya adının yolu, dosyanın başlığını ve dizin yolunun tamamını içerir. Örneğin, GetNextPathName
"C:\FILES\TEXT. C:\FILES\TEXT.DAT dosyası için DAT" yazın. çağrısıyla GetStartPosition
ilk konumu belirlerseniz, bir iletme yineleme döngüsünde kullanabilirsinizGetNextPathName
.
Seçim yalnızca bir dosyadan oluşuyorsa, bu dosya adı döndürülür.
CFileDialog::GetOFN
İlişkili OPENFILENAME
yapıyı alır.
const OPENFILENAME& GetOFN() const;
OPENFILENAME& GetOFN();
Dönüş Değeri
Açıklamalar
Bu işlevin ikinci sürümünü kullanarak, dosya açıldıktan sonra ancak üye işleviyle DoModal
görüntülenmeden önce Dosya Aç veya Farklı Kaydet iletişim kutusunun görünümünü başlatın. Örneğin, öğesinin üyesini lpstrTitle
m_ofn
iletişim kutusunun olmasını istediğiniz resim yazısına ayarlayabilirsiniz.
CFileDialog::GetPathName
İletişim kutusuna girilen dosyanın tam yolunu almak için bu işlevi çağırın.
CString GetPathName() const;
Dönüş Değeri
Dosyanın tam yolu.
Açıklamalar
Dosya adının yolu, dosyanın başlığını ve dizin yolunun tamamını içerir. Örneğin, GetPathName
"C:\FILES\TEXT. C:\FILES\TEXT.DAT dosyası için DAT" yazın.
OFN_ALLOWMULTISELECT bayrağı ayarlanmışsa m_ofn.Flags
, bu dize null teminatlı dizelerden oluşan bir dizi içerir ve ilk dize, dosya grubunun dizin yolu ve ardından kullanıcı tarafından seçilen tüm dosyaların adları olur. Bu nedenle, listedeki bir sonraki dosya adını almak için GetStartPosition ve GetNextPathName üye işlevlerini kullanın.
Örnek
CFileDialog::D oModal örneğine bakın.
CFileDialog::GetReadOnlyPref
Windows standart Dosya Aç ve Dosya Farklı Kaydet iletişim kutularında Salt Okunur onay kutusunun seçilip seçilmediğini belirlemek için bu işlevi çağırın.
BOOL GetReadOnlyPref() const;
Dönüş Değeri
İletişim kutusundaki Salt Okunur onay kutusu seçiliyse sıfır olmayan; aksi takdirde 0.
Açıklamalar
Oluşturucuda OFN_HIDEREADONLY stilini CFileDialog
ayarlayarak Salt Okunur onay kutusunu gizleyebilirsiniz.
Not
Windows Vista veya sonraki stil CFileDialog
nesneleri bu işlevi desteklemez. Bu işlevi bir Windows Vista veya sonraki bir stilde CFileDialog
kullanmaya çalışmak CNotSupportedException oluşturur.
CFileDialog::GetResult
Kullanıcının iletişim kutusunda yaptığı seçimi alır.
IShellItem* GetResult() throw();
Dönüş Değeri
Kullanıcının seçimini temsil eden bir IShellItem işaretçisi.
Açıklamalar
CFileDialog::GetResults
Birden çok seçime izin veren bir iletişim kutusunda kullanıcının seçimlerini alır.
IShellItemArray* GetResults() throw();
Dönüş Değeri
İletişim kutusunda seçilen öğelere erişilebilen IShellItemArray işaretçisi.
Açıklamalar
CFileDialog::GetSelectedControlItem
İletişim kutusundaki belirtilen kapsayıcı denetiminden belirli bir öğeyi alır.
HRESULT GetSelectedControlItem(
DWORD dwIDCtl,
DWORD& dwIDItem);
Parametreler
dwIDCtl
Kapsayıcı denetiminin kimliği.
dwIDItem
Kullanıcının denetimde seçtiği öğenin kimliği.
Açıklamalar
CFileDialog::GetStartPosition
OFN_ALLOWMULTISELECT bayrağı ayarlanmışsa m_ofn.Flags
listedeki ilk dosya yolu adının konumunu almak için bu üye işlevini çağırın.
POSITION GetStartPosition() const;
Dönüş Değeri
Yineleme için kullanılabilecek BIR POSITION değeri; Liste boşsa NULL.
CFileDialog::HideControl
Gezgin stilinde bir Ortak Aç veya Farklı Kaydet iletişim kutusunda belirtilen denetimi gizlemek için bu üye işlevini çağırın.
void HideControl(int nID);
Parametreler
Nıd
Gizlenecek denetimin kimliği.
Açıklamalar
İletişim kutusu OFN_EXPLORER stiliyle oluşturulmuş olmalıdır; aksi takdirde işlev bir onay ile başarısız olur.
CFileDialog::IsPickFoldersMode
Geçerli iletişim kutusunun klasör seçici modunda olup olmadığını belirler.
BOOL IsPickFoldersMode() const;
Dönüş Değeri
İletişim kutusu klasör seçici modundaysa TRUE; aksi takdirde YANLIŞ.
Açıklamalar
CFileDialog::m_ofn
m_ofn
türünde OPENFILENAME
bir yapıdır. Bu yapıdaki veriler geçerli durumunu CFileDialog
temsil eder.
Açıklamalar
Dosya Aç veya Dosya Farklı Kaydet iletişim kutusunun görünümünü oluşturmak için ancak bunu DoModal yöntemiyle görüntülemeden önce başlatmak için bu yapıyı kullanın. Örneğin, öğesinin lpstrTitle üyesini m_ofn
, iletişim kutusunun olmasını istediğiniz resim yazısına ayarlayabilirsiniz.
CFileDialog'un Windows Vista veya sonraki stiliyle, m_ofn
iletişim kutusunun durumuyla her zaman eşleşmesi garanti değildir. Windows'un önceki sürümlerinde iletişim kutusuyla eşitlenir. Windows Vista veya sonraki bir sürüm altında yapıyı ve durumu eşitleme m_ofn
hakkında daha fazla bilgi için bkz. CFileDialog::ApplyOFNToShellDialog ve CFileDialog
CFileDialog::UpdateOFNFromShellDialog.
Windows Vista veya sonraki stil dosya iletişim kutuları belirli üyelerini ve bayraklarını CFileDialog
desteklemez. Sonuç olarak, bunların hiçbir etkisi olmaz.
Aşağıda, Windows Vista veya sonraki sürümler tarafından desteklenmeyen üyelerin listesi yer alır:
lpstrCustomFilter
lpstrInitialDir
lCustData
lpfnHook
lpTemplateName
Aşağıdaki bayraklar desteklenmez ve bu nedenle Windows Vista veya sonraki bir stilini CFileDialog
kullandığınızda hiçbir etkisi olmaz:
OFN_ENABLEHOOK
OFN_ENABLEINCLUDENOTIFY
OFN_ENABLETEMPLATE
OFN_ENABLETEMPLATEHANDLE
OFN_EXPLORER
OFN_EXTENSIONDIFFERENT
OFN_HIDEREADONLY
OFN_LONGNAMES - Windows Vista veya sonraki sürümlerde her zaman etkin bir şekilde açık
OFN_NOLONGNAMES - Windows Vista veya sonraki sürümlerde etkin bir şekilde her zaman kapalı
OFN_NONETWORKBUTTON - Windows Vista veya sonraki sürümlerde etkin bir şekilde her zaman açık
OFN_READONLY
OFN_SHOWHELP
Bu yapı hakkında daha fazla bilgi için Windows SDK'sında OPENFILENAME yapısına bakın.
CFileDialog::MakeProminent
İletişim kutusuna bir denetim yerleştirerek diğer denetimlerle karşılaştırıldığında öne çıkmasını sağlar.
HRESULT MakeProminent(DWORD dwIDCtl);
Parametreler
dwIDCtl
Denetimin kimliği.
Açıklamalar
CFileDialog::OnButtonClicked
Düğmeye tıklandığında çağrılır.
virtual void OnButtonClicked(DWORD dwIDCtl);
Parametreler
dwIDCtl
Düğmenin kimliği.
Açıklamalar
CFileDialog::OnCheckButtonToggled
Onay kutusu işaretli veya işaretsiz olduğunda çağrılır.
virtual void OnCheckButtonToggled(
DWORD dwIDCtl,
BOOL bChecked);
Parametreler
dwIDCtl
Onay kutusunun kimliği.
b İşaretlendi
İşaretlendi veya işaretlenmemiş.
Açıklamalar
CFileDialog::OnControlActivating
Denetim etkinleştirildiğinde çağrılır.
virtual void OnControlActivating(DWORD dwIDCtl);
Parametreler
dwIDCtl
Denetimin kimliği.
Açıklamalar
CFileDialog::OnFileNameChange
WM_NOTIFY CDN_SELCHANGE iletisini işlemek istiyorsanız bu yöntemi geçersiz kılın.
virtual void OnFileNameChange();
Açıklamalar
Kullanıcı Aç veya Farklı Kaydet iletişim kutusunun dosya listesinde yeni bir dosya veya klasör seçtiğinde sistem CDN_SELCHANGE iletisini gönderir. Bu iletiye yanıt olarak herhangi bir eylem gerçekleştirmek istiyorsanız bu yöntemi geçersiz kılın.
Sistem bu iletiyi yalnızca iletişim kutusu OFN_EXPLORER bayrağı açık olarak oluşturulduysa gönderir. Bildirim hakkında daha fazla bilgi için bkz . CDN_SELCHANGE. OFN_EXPLORER bayrağı hakkında bilgi için OPENFILENAME yapısına ve Aç ve Farklı Kaydet İletişim Kutuları'na bakın.
CFileDialog::OnFileNameOK
Bu işlevi yalnızca ortak bir dosya iletişim kutusuna girilen dosya adlarının özel doğrulamasını sağlamak istiyorsanız geçersiz kılın.
virtual BOOL OnFileNameOK();
Dönüş Değeri
Dosya adı geçerli bir dosya adı değilse 1; aksi takdirde 0.
Açıklamalar
Bu işlev, uygulamaya özgü herhangi bir nedenle dosya adını reddetmenizi sağlar. Normalde, çerçeve dosya adlarının varsayılan doğrulamasını sağladığından ve geçersiz bir dosya adı girilirse bir ileti kutusu görüntülediğinden bu işlevi kullanmanız gerekmez.
1 döndürülürse, kullanıcının başka bir dosya adı girmesi için iletişim kutusu görüntülenir. dönüş 0 ise iletişim kutusu yordamı iletişim kutusunu kapatır. Diğer sıfır olmayan dönüş değerleri şu anda ayrılmıştır ve kullanılmamalıdır.
CFileDialog::OnFolderChange
WM_NOTIFYCDN_FOLDERCHANGE iletisini işlemek için bu işlevi geçersiz kılın.
virtual void OnFolderChange();
Açıklamalar
Bildirim iletisi, Aç veya Farklı Kaydet iletişim kutusunda yeni bir klasör açıldığında gönderilir.
Bildirim yalnızca iletişim kutusu OFN_EXPLORER stiliyle oluşturulduysa gönderilir. Bildirim hakkında daha fazla bilgi için bkz . CDN_FOLDERCHANGE. OFN_EXPLORER stili hakkında bilgi için OPENFILENAME yapısına ve Aç ve Farklı Kaydet İletişim Kutuları'na bakın.
CFileDialog::OnInitDone
WM_NOTIFY CDN_INITDONE iletisini işlemek için bu işlevi geçersiz kılın.
virtual void OnInitDone();
Açıklamalar
Sistem, alt iletişim kutusunun denetimlerine yer açmak için Aç veya Farklı Kaydet iletişim kutusunda denetimleri düzenlemeyi bitirdiğinde bu bildirim iletisini gönderir.
Sistem bunu yalnızca iletişim kutusu OFN_EXPLORER stiliyle oluşturulduysa gönderir. Bildirim hakkında daha fazla bilgi için bkz . CDN_INITDONE. OFN_EXPLORER stili hakkında bilgi için OPENFILENAME yapısına ve Aç ve Farklı Kaydet İletişim Kutuları'na bakın.
Not
Windows Vista veya sonraki stil dosyası iletişim kutuları bu işlevi desteklemez. Bu işlevi bir Windows Vista veya sonraki stil dosyası iletişim kutusunda kullanmaya çalışmak CNotSupportedException oluşturur.
CFileDialog::OnItemSelected
Kapsayıcı öğesi seçildiğinde çağrılır.
virtual void OnItemSelected(
DWORD dwIDCtl,
DWORD dwIDItem);
Parametreler
dwIDCtl
Kapsayıcı denetiminin kimliği.
dwIDItem
Öğenin kimliği.
Açıklamalar
CFileDialog::OnLBSelChangedNotify
Liste kutusundaki geçerli seçim değişmek üzere olduğunda bu işlev çağrılır.
virtual void OnLBSelChangedNotify(
UINT nIDBox,
UINT iCurSel,
UINT nCode);
Parametreler
nIDBox
Seçimin gerçekleştiği liste kutusunun veya birleşik giriş kutusunun kimliği.
iCurSel
Geçerli seçimin dizini.
nCode
Denetim bildirim kodu. Bu parametre aşağıdaki değerlerden birine sahip olmalıdır:
CD_LBSELCHANGE Tek seçimli liste kutusunda seçili öğe iCurSel'i belirtir.
CD_LBSELSUB Çok işlevli liste kutusunda iCurSel'in artık seçilmediğini belirtir.
CD_LBSELADD Çok bölümlü liste kutusunda iCurSel'in seçili olduğunu belirtir.
CD_LBSELNOITEMS Çok bölümlü liste kutusunda seçim olmadığını belirtir.
Açıklamalar
Liste kutusunda seçim değişikliklerinin özel işlenmesini sağlamak için bu işlevi geçersiz kılın. Örneğin, kullanıcının seçtiği her dosyanın erişim haklarını veya son değiştirme tarihini görüntülemek için bu işlevi kullanabilirsiniz.
CFileDialog::OnShareViolation
Paylaşım ihlallerinin özel işlenmesini sağlamak için bu işlevi geçersiz kılın.
virtual UINT OnShareViolation(LPCTSTR lpszPathName);
Parametreler
lpszPathName
Paylaşım ihlalinin oluştuğu dosyanın yolu.
Dönüş Değeri
Aşağıdaki değerlerden biri:
OFN_SHAREFALLTHROUGH Dosya adı iletişim kutusundan döndürülür.
OFN_SHARENOWARN Başka bir işlem yapılması gerekmez.
OFN_SHAREWARN Kullanıcı bu hata için standart uyarı iletisini alır.
Açıklamalar
Normalde, çerçeve paylaşım ihlallerinin varsayılan denetimini sağladığından ve paylaşım ihlali oluşursa bir ileti kutusu görüntülediğinden bu işlevi kullanmanız gerekmez.
Paylaşım ihlali denetimini devre dışı bırakmak istiyorsanız, OFN_SHAREAWARE bayrağını ile m_ofn.Flags
birleştirmek için bit düzeyinde OR işlecini kullanın.
CFileDialog::OnTypeChange
WM_NOTIFYCDN_TYPECHANGE iletisini işlemek için bu işlevi geçersiz kılın.
virtual void OnTypeChange();
Açıklamalar
Bildirim iletisi, kullanıcı Aç veya Farklı Kaydet iletişim kutusundaki dosya türleri listesinden yeni bir dosya türü seçtiğinde gönderilir.
Bildirim yalnızca iletişim kutusu OFN_EXPLORER stiliyle oluşturulduysa gönderilir. Bildirim hakkında daha fazla bilgi için bkz . CDN_TYPECHANGE. OFN_EXPLORER stili hakkında bilgi için OPENFILENAME yapısına ve Aç ve Farklı Kaydet İletişim Kutuları'na bakın.
CFileDialog::RemoveControlItem
İletişim kutusundaki kapsayıcı denetiminden bir öğeyi kaldırır.
HRESULT RemoveControlItem(
DWORD dwIDCtl,
DWORD dwIDItem);
Parametreler
dwIDCtl
Öğeyi kaldırılacak kapsayıcı denetiminin kimliği.
dwIDItem
Öğenin kimliği.
Açıklamalar
CFileDialog::SetCheckButtonState
İletişim kutusundaki onay düğmesinin (onay kutusu) geçerli durumunu ayarlar.
HRESULT SetCheckButtonState(
DWORD dwIDCtl,
BOOL bChecked);
Parametreler
dwIDCtl
Onay kutusunun kimliği.
b İşaretlendi
Onay kutusunun durumu. TRUE işaretli olduğunu gösterir; YANLIŞ, İşaretsiz'i gösterir.
Açıklamalar
CFileDialog::SetControlItemState
İletişim kutusunda bulunan kapsayıcı denetimindeki bir öğenin geçerli durumunu ayarlar.
HRESULT SetControlItemState(
DWORD dwIDCtl,
DWORD dwIDItem,
CDCONTROLSTATEF dwState);
Parametreler
dwIDCtl
Kapsayıcı denetiminin kimliği.
dwIDItem
Öğenin kimliği.
dwState
CDCONTROLSTATE sabit listesinden denetimin yeni durumunu gösteren bir veya daha fazla değer.
Açıklamalar
CFileDialog::SetControlItemText
Denetim öğesinin metnini ayarlar. Örneğin, bir radyo düğmesine veya menüdeki bir öğeye eşlik eden metin.
HRESULT SetControlItemText(
DWORD dwIDCtl,
DWORD dwIDItem,
const CString& strLabel);
Parametreler
dwIDCtl
Kapsayıcı denetiminin kimliği.
dwIDItem
Öğenin kimliği.
strLabel
Öğenin metni.
Açıklamalar
CFileDialog::SetControlLabel
Düğme metni veya düzenleme kutusu etiketi gibi bir denetimle ilişkili metni ayarlar.
HRESULT SetControlLabel(
DWORD dwIDCtl,
const CString& strLabel);
Parametreler
dwIDCtl
Denetimin kimliği.
strLabel
Denetim adı.
Açıklamalar
CFileDialog::SetControlState
Belirli bir denetimin geçerli görünürlüğünü ve etkin durumlarını ayarlar.
HRESULT SetControlState(
DWORD dwIDCtl,
CDCONTROLSTATEF dwState);
Parametreler
dwIDCtl
Denetimin kimliği.
dwState
CDCONTROLSTATE sabit listesinden denetimin geçerli durumunu gösteren bir veya daha fazla değer.
Açıklamalar
CFileDialog::SetControlText
Gezgin stilinde Aç veya Farklı Kaydet iletişim kutusunda belirtilen denetimin metnini ayarlamak için bu yöntemi çağırın.
void SetControlText(
int nID,
LPCSTR lpsz);
void SetControlText(
int nID,
const wchar_t *lpsz);
Parametreler
Nıd
[in] Metnin ayarlanacağı denetimin kimliği.
lpsz
[in] Denetim için ayarlanacağı metni içeren dize işaretçisi.
Açıklamalar
Bu işlevin her iki sürümü de Unicode kullanan uygulamalar için geçerlidir. Ancak, ANSI kullanan uygulamalar için yalnızca LPCSTR türüne sahip sürüm geçerlidir.
Bu yöntemi kullanmak için, OFN_EXPLORER stiliyle iletişim kutusunu oluşturmanız gerekir. Aksi takdirde işlev bir onay ile başarısız olur.
CFileDialog::SetDefExt
Gezgin stilinde Ortak Aç veya Farklı Kaydet iletişim kutusu için varsayılan dosya adı uzantısını ayarlamak için bu işlevi çağırın.
void SetDefExt(LPCSTR lpsz);
Parametreler
lpsz
İletişim kutusu nesnesi için kullanılacak varsayılan uzantıyı içeren bir dize işaretçisi. Bu dize nokta (.) içermemelidir.
Açıklamalar
İletişim kutusu OFN_EXPLORER stiliyle oluşturulmuş olmalıdır; aksi takdirde işlev bir onay ile başarısız olur.
CFileDialog::SetEditBoxText
Düzenleme kutusu denetimindeki geçerli metni ayarlar.
HRESULT SetEditBoxText(
DWORD dwIDCtl,
const CString& strText);
Parametreler
dwIDCtl
Düzenleme kutusunun kimliği.
strText
Metin değeri.
Açıklamalar
CFileDialog::SetProperties
Kaydedilen öğe için kullanılacak varsayılan değerleri tanımlayan bir özellik deposu sağlar.
BOOL SetProperties(LPCWSTR lpszPropList);
Parametreler
lpszPropList
";" ile ayrılmış önceden tanımlanmış özelliklerin listesi. Bayrakların listesi için OPENFILENAME'in Bayraklar bölümüne bakın.
Açıklamalar
CFileDialog::SetSelectedControlItem
Bir seçenek düğmesi grubundaki veya iletişim kutusunda bulunan birleşik giriş kutusundaki belirli bir öğenin seçili durumunu ayarlar.
HRESULT SetSelectedControlItem(
DWORD dwIDCtl,
DWORD dwIDItem);
Parametreler
dwIDCtl
Kapsayıcı denetiminin kimliği.
dwIDItem
Kullanıcının denetimde seçtiği öğenin kimliği.
Açıklamalar
CFileDialog::SetTemplate
CFileDialog nesnesi için iletişim kutusu şablonunu ayarlar.
void SetTemplate(
UINT nWin3ID,
UINT nWin4ID);
void SetTemplate(
LPCTSTR lpWin3ID,
LPCTSTR lpWin4ID);
Parametreler
nWin3ID
[in] Explorer CFileDialog
olmayan nesne için şablon kaynağının kimlik numarasını içerir. Bu şablon yalnızca Windows NT 3.51'de veya OFN_EXPLORER stili mevcut olmadığında kullanılır.
nWin4ID
[in] Explorer CFileDialog
nesnesinin şablon kaynağının kimlik numarasını içerir. Bu şablon yalnızca Windows NT 4.0 ve sonraki sürümlerde, Windows 95 ve sonraki sürümlerde veya OFN_EXPLORER stili mevcut olduğunda kullanılır.
lpWin3ID
[in] Explorer CFileDialog
olmayan nesnenin şablon kaynağının adını içerir. Bu şablon yalnızca Windows NT 3.51'de veya OFN_EXPLORER stili mevcut olmadığında kullanılır.
lpWin4ID
[in] Explorer CFileDialog
nesnesinin şablon kaynağının adını içerir. Bu şablon yalnızca Windows NT 4.0 ve sonraki sürümlerde, Windows 95 ve sonraki sürümlerde veya OFN_EXPLORER stili mevcut olduğunda kullanılır.
Açıklamalar
Sistem, belirtilen şablonlardan yalnızca birini kullanır. Sistem, OFN_EXPLORER stilinin ve uygulamanın üzerinde çalıştığı işletim sisteminin varlığına bağlı olarak hangi şablonun kullanılacağını belirler. Hem Gezgin olmayan hem de Gezgin stilinde bir şablon belirterek, Windows NT 3.51, Windows NT 4.0 ve sonraki sürümleri ve Windows 95 ve sonraki sürümleri desteklemek kolaydır.
Not
Windows Vista veya sonraki stil dosyası iletişim kutuları bu işlevi desteklemez. Bu işlevi bir Windows Vista veya sonraki stil dosyası iletişim kutusunda kullanmaya çalışmak CNotSupportedException oluşturur. Alternatif olarak özelleştirilmiş bir iletişim kutusu kullanabilirsiniz. Özel CFileDialog
kullanma hakkında daha fazla bilgi için bkz . IFileDialogCustomize.
CFileDialog::StartVisualGroup
İletişim kutusunda bir görsel grubu bildirir. Herhangi bir "add" yöntemine yapılan sonraki çağrılar bu öğeleri bu gruba ekler.
HRESULT StartVisualGroup(
DWORD dwIDCtl,
const CString& strLabel);
Parametreler
dwIDCtl
Görsel grubunun kimliği.
strLabel
Grup adı.
Açıklamalar
CFileDialog::UpdateOFNFromShellDialog
m_ofn
İç nesnenin geçerli durumuna göre CFileDialog'un veri yapısını güncelleştirir.
void UpdateOFNFromShellDialog();
Açıklamalar
Windows Vista'nın önceki Windows sürümlerinde, üye OPENFILENAME veri yapısı sürekli olarak durumuyla CFileDialog
eşitlendi. m_ofn üye değişkeninde yapılan değişiklikler iletişim kutusunun durumunu doğrudan etkiledi. Ayrıca, iletişim kutusunun durumunda yapılan tüm değişiklikler m_ofn üye değişkenini hemen güncelleştirdi.
Windows Vista veya sonraki sürümlerinde veri m_ofn
yapısı otomatik olarak güncelleştirilmez. Üye değişkenindeki m_ofn
verilerin doğruluğunu garanti etmek için verilere erişmeden önce işlevini çağırmanız UpdateOFNFromShellDialog
gerekir. Windows, IFileDialog::OnFileOK işlemi sırasında bu işlevi otomatik olarak çağırır.
Windows Vista veya sonraki bir sürüm altında sınıfı kullanma CFileDialog
hakkında daha fazla bilgi için bkz . CFileDialog Sınıfı.
Örnek
Bu örnek, görüntülemeden önce öğesini CFileDialog
güncelleştirir. Üye değişkenini m_ofn
güncelleştirmeden önce, bunu iletişim kutusunun geçerli durumuyla eşitlememiz gerekir.
// 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();