CFileDialog sınıfı
Dosya Aç veya dosya kaydetme işlemi için kullanılan ortak bir iletişim kutusu içinde saklar.
class CFileDialog : public CCommonDialog
Üyeler
Public kurucusu
Ad |
Tanımlama |
---|---|
Oluşturan bir CFileDialog nesne. |
Public yöntemler
Ad |
Tanımlama |
---|---|
İletişim kutusuna bir onay düğmesi ekler. |
|
Birleşik giriş kutusu iletişim kutusuna ekler. |
|
Kapsayıcı denetimi iletişim kutusunda bir öğe ekler. |
|
Düzenleme kutusu iletişim kutusuna ekler. |
|
İletişim için bir menü ekler. |
|
Aşırı yüklenmiş.Bir klasör listesi öğelerini kaydetmek veya açmak için kullanıcı kullanılabilir basamak ekler. |
|
Bir düğme iletişim kutusuna ekler. |
|
Seçenek düğmesi (radyo düğmesi olarak da bilinir) grubu iletişim kutusuna ekler. |
|
Ayırıcı iletişim kutusuna ekler. |
|
Metin içeriği iletişim kutusuna ekler. |
|
Durum güncelleştirmeleri CFileDialog parametreleri ve depolanan bayrakları eşleştirmek için m_ofn üye değişkeni. |
|
İletişim kutusu görüntülenir ve kullanıcının seçim yapmasına olanak tanır. |
|
Üzerindeki açılan liste sağlayan açık veya kaydetmek iletişim kutusunda düğme. |
|
Görsel bir gruba iletişim öğelerin toplama durur. |
|
Onay düğmesini (onay kutusu) iletişim kutusunda geçerli durumunu alır. |
|
İletişim kutusunda bulunan bir kapsayıcı denetimi içindeki bir öğeyi geçerli durumunu alır. |
|
Geçerli görünürlük alır ve belirli bir denetim durumları etkin. |
|
Geçerli metin düzenleme kutusu denetimine alır. |
|
Seçili dosya uzantısını döndürür. |
|
Seçili dosyanın dosya adını döndürür. |
|
Seçili dosyanın başlığını döndürür. |
|
Explorer stil için açık olan klasörün ya da dizinin yolunu alır açık veya Kaydet ortak iletişim kutusu. |
|
İç com nesnesi için özelleştirilmiş bir alır CFileDialog nesne. |
|
İç com nesnesini getirir bir CFileDialog olarak kullanılan bir açık dosya iletişim kutusu. |
|
İç com nesnesini getirir bir CFileDialog olarak kullanılan bir kaydetmek dosya iletişim kutusu. |
|
Sonraki Seçilen dosyanın tam yolunu döndürür. |
|
Alır OPENFILENAME yapısını CFileDialog nesne. |
|
Seçili dosyanın tam yolunu döndürür. |
|
Seçili dosyanın salt okunur durumunu döndürür. |
|
Kullanıcı iletişim kutusunda yapılan seçime alır. |
|
Birden çok seçime izin veren bir iletişim kutusunda kullanıcının seçimlerini alır. |
|
İletişim kutusunda belirtilen kapsayıcı denetimleri belirli bir öğe alır. |
|
Dosya adı listesinde, ilk öğenin konumunu döndürür. |
|
Belirtilen Denetim Gezgini stilinde gizler açık veya Kaydet ortak iletişim kutusu. |
|
Belirler Klasör Seçici modunda geçerli iletişim. |
|
Onu olacak şekilde yerler için eklenen diğer denetimleri denetim iletişim karşılaştırıldığında. |
|
Kapsayıcı denetimi iletişim kutusunda bir öğeyi kaldırır. |
|
İletişim kutusunda bir onay düğmesini (onay kutusu) geçerli durumunu ayarlar. |
|
İletişim kutusunda bulunan bir kapsayıcı denetimindeki bir öğeyi geçerli durumunu ayarlar. |
|
Denetim öğesinin metni ayarlar.Örneğin, bir radyo düğmesi veya menü içindeki bir öğeyi eşlik eden metin. |
|
Düğme metni veya düzenleme kutusu etiketi bir denetimle ilişkilendirilmiş metni ayarlar. |
|
Ayarlar geçerli Görünürlük ve verilen denetimin durumlarını etkin. |
|
Belirtilen denetim metni bir Explorer stilini ayarlar açık veya Kaydet ortak iletişim kutusu. |
|
Varsayılan dosya adı uzantısı Gezgini stili için ayarlar açık veya Kaydet ortak iletişim kutusu. |
|
Geçerli metin düzenleme kutusu denetimini ayarlar. |
|
Kaydedilmekte madde için kullanılacak varsayılan değerlerini tanımlayan bir özellik deposu sağlar. |
|
Seçenek düğmesi grubu veya birleşik giriş kutusu iletişim kutusunda bulunan belirli bir öğenin seçili durumunu ayarlar. |
|
Ayarlar iletişim kutusu şablon için CFileDialog nesne. |
|
Görsel bir grup iletişim kutusunda bildirir."Ekle" herhangi bir yöntem çağrıları sonraki öğeler bu gruba ekleyin. |
|
Depolanan veri güncelleştirmeleri m_ofn üye değişkeni file iletişim kutusunda geçerli durumunu eşleştirmek için. |
Korumalı yöntemleri
Ad |
Tanımlama |
---|---|
Düğme tıklatıldığında denir. |
|
Onay kutusu işaretli/işaretli olmadığında denir. |
|
Denetim etkin olduğunda denir. |
|
İşleme WM_NOTIFY CDN_SELCHANGE ileti. |
|
İletişim kutusuna girdiğiniz dosya adı doğrular. |
|
İşleme WM_NOTIFY CDN_FOLDERCHANGE ileti. |
|
İşleme WM_NOTIFY CDN_INITDONE ileti. |
|
Kapsayıcı öğe seçildiğinde denir. |
|
Dosya seçimini değiştirdiğinde özel eylemler gerçekleştirmenizi sağlar. |
|
Tutamaçları ihlalleri paylaşın. |
|
İşleme WM_NOTIFY CDN_TYPECHANGE ileti. |
Ortak veri üyeleri
Ad |
Tanımlama |
---|---|
Windows OPENFILENAME yapısı.Temel dosya iletişim kutusunu parametreleri erişim sağlar. |
Notlar
Genel dosya iletişim kutularında Dosya Seçimi iletişim kutuları, örneğin, uygulamanıza olanak Open File ve Kaydet, Windows standartları ile tutarlı bir şekilde.
Kullanabileceğiniz CFileDialog olduğu gibi kurucu sağlanan veya kendi iletişim kutusunu sınıfından türetebilirsiniz CFileDialog ve gereksinimlerinize uygun biçimde bir kurucu yazar.Ten türetildiklerinden dolayı her iki durumda da, bu iletişim kutuları Standart mfc iletişim kutuları gibi davranır CCommonDialog sınıfı.CFileDialogcommdlg üzerinde dayanır.Windows'da bulunan dll dosyası.
Hem görünüm hem de işlevselliğini CFileDialog ile Windows Vista , Windows'un daha önceki sürümlerden farklıdır.Varsayılan CFileDialog otomatik olarak yeni kullanır Windows Vista bir program derlendiğinde if kod değişiklikleri ve Çalıştır altında olmadan stil Windows Vista.Kullanım bVistaStyle bu otomatik güncelleştirmeyi el ile geçersiz kılmak için yapıcı parametre.Otomatik güncelleştirme için özel iletişim kutuları istisnadır.Bunlar yeni stile dönüştürülür değil.Oluşturucu hakkında daha fazla bilgi için bkz: CFileDialog::CFileDialog.
[!NOT]
Denetim Kimliği sistem içinde farklı Windows Vista kullandığınızda Windows önceki sürümlerinden bir CFileDialog.Tüm başvuruları güncelleştirmeniz gerekir CFileDialog önce projenizi, Windows'un önceki bir sürümünden bağlantı noktası kod denetimleri.
Bazı CFileDialog altında yöntemleri desteklenmez Windows Vista.Yönteminin desteklenip desteklenmediğini öğrenmek için tek yöntem konusuna bakın.Buna ek olarak, aşağıdaki devralınmış işlevler altında desteklenmez Windows Vista:
Windows iletileri CFileDialog sınıf hangi işletim sistemine göre değişir.Örneğin, Windows xp desteklemediği CDialog::OnCancel ve CDialog::OnOK için CFileDialog sınıf.Ancak, Windows Vista bunları desteklemiyor.Oluşturulan farklı mesajlar ve içinde bunlar alınan sipariş hakkında daha fazla bilgi için bkz: CFileDialog örnek: günlüğü olay sırası.
Kullanmak için bir CFileDialog nesne, ilk nesneyi kullanarak oluşturduğunuz CFileDialog kurucusu.İletişim kutusu inşa sonra ayarlamak veya herhangi bir değer değiştirme CFileDialog::m_ofn değerleri veya iletişim kutusu denetimleri durumları yapısı.m_ofn Yapısı türü olan OPENFILENAME.Daha fazla bilgi için bkz: AÇIKDOSYAADI , yapı Windows SDK.
İletişim kutusu denetimleri başlatmak sonra call CFileDialog::DoModal yöntemi iletişim kutusunu görüntülemek için kutusunda yolu ve dosya adını yazabilmek için.DoModalKullanıcı (IDOK) Tamam veya iptal (IDCANCEL) düğmesi tıklatıldığında döndürür.DoModal IDOK, döner birini kullanın CFileDialog bilgi almak için ortak üye işlevleri koymak kullanıcı tarafından.
[!NOT]
Altında Windows Vista, birden çok çağrılar IFileDialog::SetFileTypes bir hata neden olur.İkinci çağrı SetFileTypes herhangi bir örneği için bir CFileDialog döner E_UNEXPECTED , Windows Vista.Bazı CFileDialog yöntemi işlev çağrısı SetFileTypes.Örneğin, iki çağrılarını için CFileDialog::DoModal aynı örneği için bir CFileDialog oluşturduğu izin.
CFileDialogözel işleme paylaşım ihlalleri, dosya adı doğrulamasını ve liste kutusunda değişiklik bildirimi yapmanıza olanak sağlayan birkaç korumalı üyeler içerir.Çoğu uygulama varsayılan işleme otomatik olarak gerçekleştirildiği için kullanmak zorunda değilsiniz geri arama işlevleri bu korumalı üyeleridir.Bu işlevler için ileti eşleme girdilerini standart sanal işlevler, çünkü bunlar gerekli değildir.
Windows'un kullanabileceği CommDlgExtendedError işlevi bir hata iletişim kutusu başlatma sırasında oluşup oluşmadığını belirleyin ve hata hakkında daha fazla bilgi için.
Etme işleminin CFileDialog nesneleri otomatik olarak gerçekleştirilir.Çağırmak zorunda değilsiniz CDialog::EndDialog.
Birden çok dosya seçmesini sağlamak için OFN_ALLOWMULTISELECT çağırmadan önce bayrak DoModal.Kendi dosya adı arabellek döndürülen birden çok dosya adlarının listesini uyum sağlamanız gerekir.Bunu değiştirerek m_ofn.lpstrFile , oluşturduktan sonra arabellek için bir işaretçi ile size, tahsis CFileDialog, ama çağırmadan önce DoModal.
Ayrıca, ayarlamalısınız m_ofn.nMaxFile tarafından işaret arabellekte karakter sayısını kullanarak m_ofn.lpstrFile.En fazla sayısı için seçilen dosyaları ayarlarsanız, n, gerekli arabellek boyutu n * (_MAX_PATH + 1) + 1.Arabellek döndürülen ilk öğe burada dosya seçildi klasörün yoludur.İçin Windows Vista-stil iletişim kutuları, dizin ve dosya adı dizesi null sonlandırılmış, son dosya adından sonra fazladan bir boş karakter ile.Bu biçim Gezgini Stili iletişim kutuları, boşluklar içeren uzun dosya adlarına dönmek etkinleştirir.Eski stil iletişim kutuları için dizin ve dosya adı dizesi boşluklarla ayrılır ve dosya adları için kısa dosya adları boşlukla işlevini kullanır.
Aşağıdaki örnek bir arabellek almak ve birden çok dosya adlarını görüntülemek için nasıl kullanılacağını gösterir.
#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çerek kullanıcı yanıtı arabellek boyutunu değiştirmek için yeni bir sınıf türetin CFileDialog ve geçersiz kılma CFileDialog::OnFileNameChange yöntem.
Yeni bir sınıf türetin, CFileDialog, tüm iletileri işlemek için bir ileti eşleme kullanabilirsiniz.Varsayılan ileti işleme genişletmek için bir sınıf türetin CFileDialogbir ileti eşleme yeni sınıfa ekleyin ve yeni iletiler için üye işlevleri sağlar.Özelleştir iletişim kutusu için bir kanca işlevi sağlamak zorunda değildir.
Özelleştir iletişim kutusu için bir sınıf türetin CFileDialog, özel iletişim kutusu şablon sağlamak ve genişletilmiş denetimlerinden bildirim iletileri işlemek için bir ileti eşleme ekleyin.İşlenmemiş olan tüm iletiler için temel sınıf geçirin.Kanca işlev özelleştirmek zorunda değildir.
Kullanırken Windows Vista stilini CFileDialog, ileti haritalar ve iletişim kutusunda Şablonlar'ı kullanamazsınız.Bunun yerine benzer bir işlevsellik için com arabirimleri kullanmanız gerekir.
CFileDialog'nin nasıl kullanıldığı hakkında daha fazla bilgi için, bkz. Ortak iletişim sınıfları.
Devralma hiyerarşisi
CFileDialog
Gereksinimler
**Başlık:**afxdlgs.h