Bagikan melalui


Kelas CFileDialog

Merangkum kotak dialog umum yang digunakan untuk operasi buka file atau penyimpanan file.

Sintaks

class CFileDialog : public CCommonDialog

Anggota

Konstruktor Publik

Nama Deskripsi
CFileDialog::CFileDialog Membuat CFileDialog objek.

Metode Publik

Nama Deskripsi
CFileDialog::AddCheckButton Menambahkan tombol centang ke dialog.
CFileDialog::AddComboBox Menambahkan kotak kombo ke dialog.
CFileDialog::AddControlItem Menambahkan item ke kontrol kontainer dalam dialog.
CFileDialog::AddEditBox Menambahkan kotak edit ke dialog.
CFileDialog::AddMenu Menambahkan menu ke dialog.
CFileDialog::AddPlace Kelebihan beban. Menambahkan folder ke daftar tempat yang tersedia bagi pengguna untuk membuka atau menyimpan item.
CFileDialog::AddPushButton Menambahkan tombol ke dialog.
CFileDialog::AddRadioButtonList Menambahkan grup tombol opsi (juga dikenal sebagai tombol radio) ke dialog.
CFileDialog::AddSeparator Menambahkan pemisah ke dialog.
CFileDialog::AddText Menambahkan isi teks ke dialog.
CFileDialog::ApplyOFNToShellDialog Memperbarui status CFileDialog agar sesuai dengan parameter dan bendera yang disimpan dalam m_ofn variabel anggota.
CFileDialog::D oModal Menampilkan kotak dialog dan memungkinkan pengguna membuat pilihan.
CFileDialog::EnableOpenDropDown Mengaktifkan daftar drop-down pada tombol Buka atau Simpan dalam dialog.
CFileDialog::EndVisualGroup Menghentikan penambahan elemen ke grup visual dalam dialog.
CFileDialog::GetCheckButtonState Mendapatkan status tombol centang saat ini (kotak centang) dalam dialog.
CFileDialog::GetControlItemState Mendapatkan status item saat ini dalam kontrol kontainer yang ditemukan dalam dialog.
CFileDialog::GetControlState Mendapatkan visibilitas saat ini dan mengaktifkan status kontrol tertentu.
CFileDialog::GetEditBoxText Mendapatkan teks saat ini dalam kontrol kotak edit.
CFileDialog::GetFileExt Mengembalikan ekstensi file yang dipilih.
CFileDialog::GetFileName Mengembalikan nama file dari file yang dipilih.
CFileDialog::GetFileTitle Mengembalikan judul file yang dipilih.
CFileDialog::GetFolderPath Mengambil jalur folder atau direktori yang saat ini terbuka untuk kotak dialog Buka atau Simpan Sebagai umum gaya Penjelajah.
CFileDialog::GetIFileDialogCustomize Mengambil objek COM internal untuk objek yang disesuaikan CFileDialog .
CFileDialog::GetiFileOpenDialog Mengambil objek COM internal untuk yang CFileDialog digunakan sebagai kotak dialog Buka file.
CFileDialog::GetIFileSaveDialog Mengambil objek COM internal untuk yang CFileDialog digunakan sebagai kotak dialog Simpan file.
CFileDialog::GetNextPathName Mengembalikan jalur lengkap dari file terpilih berikutnya.
CFileDialog::GetOFN Mengambil OPENFILENAME struktur CFileDialog objek.
CFileDialog::GetPathName Mengembalikan jalur lengkap file yang dipilih.
CFileDialog::GetReadOnlyPref Mengembalikan status baca-saja dari file yang dipilih.
CFileDialog::GetResult Mendapatkan pilihan yang dibuat pengguna dalam dialog.
CFileDialog::GetResults Mendapatkan pilihan pengguna dalam dialog yang memungkinkan beberapa pilihan.
CFileDialog::GetSelectedControlItem Mendapatkan item tertentu dari kontrol kontainer tertentu dalam dialog.
CFileDialog::GetStartPosition Mengembalikan posisi elemen pertama dari daftar nama file.
CFileDialog::HideControl Menyembunyikan kontrol yang ditentukan dalam kotak dialog Buka atau Simpan Sebagai umum gaya Penjelajah.
CFileDialog::IsPickFoldersMode Menentukan apakah dialog saat ini dalam mode pemilih folder.
CFileDialog::MakeProminent Menempatkan kontrol dalam dialog sehingga menonjol dibandingkan dengan kontrol lain yang ditambahkan.
CFileDialog::RemoveControlItem Menghapus item dari kontrol kontainer dalam dialog.
CFileDialog::SetCheckButtonState Mengatur status tombol centang saat ini (kotak centang) dalam dialog.
CFileDialog::SetControlItemState Mengatur status item saat ini dalam kontrol kontainer yang ditemukan dalam dialog.
CFileDialog::SetControlItemText Mengatur teks item kontrol. Misalnya, teks yang menyertai tombol radio atau item di menu.
CFileDialog::SetControlLabel Mengatur teks yang terkait dengan kontrol, seperti teks tombol atau label kotak edit.
CFileDialog::SetControlState Mengatur visibilitas saat ini dan mengaktifkan status kontrol tertentu.
CFileDialog::SetControlText Mengatur teks untuk kontrol yang ditentukan dalam kotak dialog Buka atau Simpan Sebagai umum gaya Penjelajah.
CFileDialog::SetDefExt Mengatur ekstensi nama file default untuk kotak dialog Buka atau Simpan Sebagai umum gaya Explorer.
CFileDialog::SetEditBoxText Mengatur teks saat ini dalam kontrol kotak edit.
CFileDialog::SetProperties Menyediakan penyimpanan properti yang menentukan nilai default yang akan digunakan untuk item yang disimpan.
CFileDialog::SetSelectedControlItem Mengatur status terpilih item tertentu dalam grup tombol opsi atau kotak kombo yang ditemukan dalam dialog.
CFileDialog::SetTemplate Mengatur templat kotak dialog untuk objek tersebut CFileDialog .
CFileDialog::StartVisualGroup Mendeklarasikan grup visual dalam dialog. Panggilan berikutnya ke metode "tambahkan" menambahkan elemen tersebut ke grup ini.
CFileDialog::UpdateOFNFromShellDialog Memperbarui data yang disimpan dalam m_ofn variabel anggota agar sesuai dengan status kotak dialog file saat ini.

Metode yang Dilindungi

Nama Deskripsi
CFileDialog::OnButtonClicked Dipanggil saat tombol diklik.
CFileDialog::OnCheckButtonToggled Dipanggil saat kotak centang dicentang/tidak dicentang.
CFileDialog::OnControlActivating Dipanggil ketika kontrol sedang aktif.
CFileDialog::OnFileNameChange Menangani pesan WM_NOTIFY CDN_SELCHANGE.
CFileDialog::OnFileNameOK Memvalidasi nama file yang dimasukkan dalam kotak dialog.
CFileDialog::OnFolderChange Menangani pesan WM_NOTIFY CDN_FOLDERCHANGE.
CFileDialog::OnInitDone Menangani pesan WM_NOTIFY CDN_INITDONE.
CFileDialog::OnItemSelected Dipanggil saat item kontainer sedang dipilih.
CFileDialog::OnLBSelChangedNotify Memungkinkan Anda melakukan tindakan kustom saat pemilihan file berubah.
CFileDialog::OnShareViolation Menangani pelanggaran berbagi.
CFileDialog::OnTypeChange Menangani pesan WM_NOTIFY CDN_TYPECHANGE.

Anggota Data Publik

Nama Deskripsi
CFileDialog::m_ofn Struktur Windows OPENFILENAME . Menyediakan akses ke parameter kotak dialog file dasar.

Keterangan

Kotak dialog file umum memungkinkan Anda menerapkan kotak dialog pemilihan file, misalnya, Buka File dan Simpan Sebagai, dengan cara yang konsisten dengan standar Windows.

Anda dapat menggunakan CFileDialog apa adanya dengan konstruktor yang disediakan, atau Anda dapat memperoleh kelas kotak dialog Anda sendiri dari CFileDialog dan menulis konstruktor agar sesuai dengan kebutuhan Anda. Dalam kedua kasus, kotak dialog ini akan berperilaku seperti kotak dialog MFC standar karena berasal dari Kelas CCommonDialog. CFileDialog bergantung pada file COMMDLG.DLL yang disertakan dalam Windows.

Tampilan dan fungsionalitas CFileDialog dengan Windows Vista atau yang lebih baru berbeda dari versi Windows sebelumnya. Default CFileDialog secara otomatis menggunakan gaya Windows Vista baru atau yang lebih baru tanpa perubahan kode jika program dikompilasi dan dijalankan di bawah Windows Vista atau yang lebih baru. Gunakan parameter bVistaStyle di konstruktor untuk mengambil alih pembaruan otomatis ini secara manual. Pengecualian untuk kotak dialog pembaruan otomatis dikustomisasi. Mereka tidak akan dikonversi ke gaya baru. Untuk informasi selengkapnya tentang konstruktor, lihat CFileDialog::CFileDialog.

Catatan

Sistem ID kontrol berbeda di Windows Vista atau yang lebih baru dari versi Windows yang lebih lama saat Anda menggunakan CFileDialog. Anda harus memperbarui semua referensi ke CFileDialog kontrol dalam kode sebelum Anda dapat memindahkan proyek Anda dari versi Windows yang lebih lama.

Beberapa CFileDialog metode tidak didukung di bawah Windows Vista atau yang lebih baru. Periksa topik metode individual untuk informasi tentang apakah metode didukung. Selain itu, fungsi yang diwariskan berikut ini tidak didukung di bawah Windows Vista atau yang lebih baru:

Pesan windows untuk CFileDialog kelas bervariasi berdasarkan sistem operasi apa yang Anda gunakan. Misalnya, Windows XP tidak mendukung CDialog::OnCancel dan CDialog::OnOK untuk CFileDialog kelas . Namun, Windows Vista dan sistem operasi yang lebih baru mendukungnya. Untuk informasi selengkapnya tentang berbagai pesan yang dihasilkan dan urutan penerimaannya, lihat Sampel CFileDialog: Urutan Peristiwa Pengelogan.

Untuk menggunakan CFileDialog objek, pertama-tama buat objek dengan menggunakan CFileDialog konstruktor. Setelah kotak dialog dibuat, Anda dapat mengatur atau mengubah nilai apa pun di struktur CFileDialog::m_ofn untuk menginisialisasi nilai atau status kontrol kotak dialog. Strukturnya m_ofn berjenis OPENFILENAME. Untuk informasi selengkapnya, lihat struktur OPENFILENAME di Windows SDK.

Setelah Anda menginisialisasi kontrol kotak dialog, panggil metode CFileDialog::D oModal untuk menampilkan kotak dialog sehingga pengguna dapat mengetik jalur dan nama file. DoModal mengembalikan apakah pengguna mengklik OK (IDOK) atau tombol Batal (IDCANCEL). Jika DoModal mengembalikan IDOK, Anda dapat menggunakan salah CFileDialog satu fungsi anggota publik untuk mengambil informasi yang dimasukkan oleh pengguna.

Catatan

Di bawah Windows Vista atau yang lebih baru, beberapa panggilan ke IFileDialog::SetFileTypes menyebabkan kesalahan. Panggilan kedua untuk SetFileTypes instans apa pun akan CFileDialog mengembalikan E_UNEXPECTED di Windows Vista atau yang lebih baru. Beberapa CFileDialog fungsi metode memanggil SetFileTypes. Misalnya, dua panggilan ke CFileDialog::DoModal untuk instans yang CFileDialog sama menghasilkan ASSERT.

CFileDialog termasuk beberapa anggota yang dilindungi yang memungkinkan Anda melakukan penanganan kustom pelanggaran berbagi, validasi nama file, dan pemberitahuan perubahan kotak daftar. Anggota yang dilindungi ini adalah fungsi panggilan balik yang tidak perlu digunakan sebagian besar aplikasi karena penanganan default dilakukan secara otomatis. Entri peta pesan untuk fungsi-fungsi ini tidak diperlukan karena merupakan fungsi virtual standar.

Anda dapat menggunakan fungsi Windows CommDlgExtendedError untuk menentukan apakah terjadi kesalahan selama inisialisasi kotak dialog dan untuk mempelajari selengkapnya tentang kesalahan tersebut.

Penghancuran CFileDialog objek ditangani secara otomatis. Anda tidak perlu memanggil CDialog::EndDialog.

Untuk mengizinkan pengguna memilih beberapa file, atur bendera OFN_ALLOWMULTISELECT sebelum Anda memanggil DoModal. Anda harus menyediakan buffer nama file Anda sendiri untuk mengakomodasi daftar beberapa nama file yang dikembalikan. Lakukan ini dengan mengganti m_ofn.lpstrFile dengan pointer ke buffer yang telah Anda alokasikan, setelah Anda membuat CFileDialog, tetapi sebelum Anda memanggil DoModal.

Selain itu, Anda harus mengatur m_ofn.nMaxFile dengan menggunakan jumlah karakter dalam buffer yang ditujukkan oleh m_ofn.lpstrFile. Jika Anda mengatur jumlah maksimum file yang akan dipilih ke n, ukuran buffer yang diperlukan adalah n * (_MAX_PATH + 1) + 1. Item pertama yang dikembalikan dalam buffer adalah jalur ke folder tempat file dipilih. Untuk kotak dialog Windows Vista atau gaya yang lebih baru, string nama direktori dan file dihentikan null, dengan karakter null tambahan setelah nama file terakhir. Format ini memungkinkan kotak dialog Gaya penjelajah untuk mengembalikan nama file panjang yang menyertakan spasi. Untuk kotak dialog gaya lama, string nama direktori dan file dipisahkan oleh spasi dan fungsi menggunakan nama file pendek untuk nama file dengan spasi.

Contoh berikut menunjukkan cara menggunakan buffer untuk mengambil dan mencantumkan beberapa nama file.

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

Untuk mengubah ukuran buffer sebagai respons terhadap pengguna yang memilih beberapa nama file, Anda harus mendapatkan kelas baru dari CFileDialog dan mengambil alih metode CFileDialog::OnFileNameChange .

Jika Anda mendapatkan kelas baru dari CFileDialog, Anda dapat menggunakan peta pesan untuk menangani pesan apa pun. Untuk memperluas penanganan pesan default, dapatkan kelas dari CFileDialog, tambahkan peta pesan ke kelas baru, dan berikan fungsi anggota untuk pesan baru. Anda tidak perlu menyediakan fungsi kait untuk mengkustomisasi kotak dialog.

Untuk mengkustomisasi kotak dialog, dapatkan kelas dari CFileDialog, sediakan templat kotak dialog kustom, dan tambahkan peta pesan untuk memproses pesan pemberitahuan dari kontrol yang diperluas. Teruskan pesan yang tidak diolah ke kelas dasar. Anda tidak perlu menyesuaikan fungsi kait.

Ketika Anda menggunakan gaya CFileDialogWindows Vista atau yang lebih baru , Anda tidak dapat menggunakan peta pesan dan templat kotak dialog. Sebagai gantinya, Anda harus menggunakan antarmuka COM untuk fungsionalitas serupa.

Untuk informasi selengkapnya tentang cara menggunakan CFileDialog, lihat Kelas Dialog Umum.

Hierarki Warisan

CObject

CCmdTarget

CWnd

CDialog

CCommonDialog

CFileDialog

Persyaratan

Header: afxdlgs.h

CFileDialog::AddCheckButton

Menambahkan tombol centang ke dialog.

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

Parameter

dwIDCtl
ID tombol centang untuk ditambahkan.

strLabel
Nama tombol centang.

bChecked
Boolean yang menunjukkan status tombol centang saat ini. TRUE jika diperiksa; FALSE jika tidak

Keterangan

CFileDialog::AddComboBox

Menambahkan kotak kombo ke dialog.

HRESULT AddComboBox(DWORD dwIDCtl);

Parameter

dwIDCtl
ID kotak kombo yang akan ditambahkan.

Keterangan

CFileDialog::AddControlItem

Menambahkan item ke kontrol kontainer dalam dialog.

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

Parameter

dwIDCtl
ID kontrol kontainer untuk menambahkan item.

dwIDItem
ID item.

strLabel
Teks item.

Keterangan

CFileDialog::AddEditBox

Menambahkan kotak edit ke dialog.

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

Parameter

dwIDCtl
ID kotak edit yang akan ditambahkan.

strText
Nama kotak edit.

Keterangan

CFileDialog::AddMenu

Menambahkan menu ke dialog.

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

Parameter

dwIDCtl
ID menu yang akan ditambahkan.

strLabel
Nama menu.

Keterangan

CFileDialog::AddPlace

Menambahkan folder ke daftar tempat yang tersedia bagi pengguna untuk membuka atau menyimpan item.

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

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

Parameter

lpszFolder
Jalur ke folder yang akan disediakan untuk pengguna. Ini hanya bisa menjadi folder.

fdap
Menentukan tempat folder ditempatkan dalam daftar.

Psi
Penunjuk ke IShellItem yang mewakili folder yang akan disediakan untuk pengguna. Ini hanya bisa menjadi folder.

Keterangan

CFileDialog::AddPushButton

Menambahkan tombol ke dialog.

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

Parameter

dwIDCtl
ID tombol untuk ditambahkan.

strLabel
Nama tombol.

Keterangan

CFileDialog::AddRadioButtonList

Menambahkan grup tombol opsi (juga dikenal sebagai tombol radio) ke dialog.

HRESULT AddRadioButtonList(DWORD dwIDCtl);

Parameter

dwIDCtl
ID grup tombol opsi untuk ditambahkan.

Keterangan

CFileDialog::AddSeparator

Menambahkan pemisah ke dialog.

HRESULT AddSeparator(DWORD dwIDCtl);

Parameter

dwIDCtl
ID pemisah ditambahkan.

Keterangan

CFileDialog::AddText

Menambahkan teks ke dialog.

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

Parameter

dwIDCtl
ID teks yang akan ditambahkan.

strText
Nama teks.

Keterangan

CFileDialog::ApplyOFNToShellDialog

Memperbarui status CFileDialog saat ini berdasarkan nilai yang disimpan dalam m_ofn struktur data.

void ApplyOFNToShellDialog();

Keterangan

Dalam versi Windows sebelum Windows Vista, struktur data OPENFILENAME anggota terus disinkronkan dengan status CFileDialog. Setiap perubahan pada variabel anggota m_ofn segera tercermin dalam status kotak dialog. Selain itu, setiap perubahan pada status kotak dialog segera memperbarui m_ofn variabel anggota.

Di Windows Vista atau yang lebih baru, nilai dalam m_ofn variabel anggota dan status CFileDialog tidak dijamin disinkronkan. Fungsi ini memaksa status yang CFileDialog akan diperbarui agar sesuai dengan m_ofn struktur. Windows memanggil fungsi ini secara otomatis selama CFileDialog::D oModal.

Untuk informasi selengkapnya tentang cara menggunakan kelas di CFileDialog bawah Windows Vista atau yang lebih baru, lihat Kelas CFileDialog.

Contoh

Lihat contoh untuk CFileDialog::UpdateOFNFromShellDialog.

CFileDialog::CFileDialog

Panggil fungsi ini untuk membuat kotak dialog file Windows standar.

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

Parameter

bOpenFileDialog
[di] Parameter yang menentukan jenis kotak dialog apa yang akan dibuat. Atur ke TRUE untuk membuat kotak dialog Buka File. Atur ke FALSE untuk membuat kotak dialog Simpan File Sebagai .

lpszDefExt
[di] Ekstensi nama file default. Jika pengguna tidak menyertakan ekstensi yang diketahui (yang memiliki asosiasi di komputer pengguna) dalam kotak Nama file, ekstensi yang ditentukan oleh lpszDefExt secara otomatis ditambahkan ke nama file. Jika parameter ini NULL, tidak ada ekstensi yang ditambahkan.

lpszFileName
[di] Nama file awal yang muncul dalam kotak Nama file. Jika NULL, tidak ada nama file awal yang muncul.

dwFlags
[di] Kombinasi satu atau beberapa bendera yang bisa Anda gunakan untuk mengkustomisasi kotak dialog. Untuk deskripsi bendera ini, lihat struktur OPENFILENAME di Windows SDK. Jika Anda mengubah m_ofn.Flags anggota struktur, gunakan operator bitwise-OR dalam perubahan Anda untuk menjaga perilaku default tetap utuh.

lpszFilter
[di] Serangkaian pasangan string yang menentukan filter yang dapat Anda terapkan ke file. Jika Anda menentukan filter file, hanya file yang cocok dengan kriteria filter yang akan muncul di daftar File. Lihat bagian Keterangan untuk informasi selengkapnya tentang cara bekerja dengan filter file.

pParentWnd
[di] Penunjuk ke jendela induk atau pemilik kotak dialog file.

dwSize
[di] Ukuran OPENFILENAME struktur. Nilai ini tergantung pada versi sistem operasi. MFC menggunakan parameter ini untuk menentukan jenis kotak dialog yang sesuai untuk dibuat. Ukuran default 0 berarti bahwa kode MFC akan menentukan ukuran kotak dialog yang benar untuk digunakan berdasarkan versi sistem operasi tempat program dijalankan.

bVistaStyle
[di] Catatan Parameter ini tersedia di Visual Studio 2008 dan yang lebih baru dan menyebabkan dialog gaya baru digunakan hanya jika Anda berjalan di Windows Vista atau yang lebih baru.

Parameter yang menentukan gaya dialog file. Atur ke TRUE untuk menggunakan dialog file gaya Vista baru. Jika tidak, gaya lama kotak dialog akan digunakan. Lihat bagian Keterangan untuk informasi selengkapnya tentang menjalankan di bawah Vista.

Keterangan

Kotak dialog Buka File atau Simpan Sebagai File dibuat, tergantung pada nilai bOpenFileDialog.

Menentukan ekstensi default menggunakan lpszDefExt mungkin tidak menghasilkan perilaku yang Anda harapkan, karena jarang dapat diprediksi ekstensi apa yang memiliki asosiasi file di komputer pengguna. Jika Anda memerlukan kontrol lebih besar atas penambahan ekstensi default, Anda dapat memperoleh kelas Anda sendiri dari CFileDialog, dan mengambil CFileDialog::OnFileNameOK alih metode untuk melakukan penanganan ekstensi Anda sendiri.

Untuk memungkinkan pengguna memilih beberapa file, atur bendera OFN_ALLOWMULTISELECT sebelum Anda memanggil DoModal. Anda harus menyediakan buffer nama file Anda sendiri untuk menyimpan daftar beberapa nama file yang dikembalikan. Lakukan ini dengan mengganti m_ofn.lpstrFile dengan pointer ke buffer yang telah Anda alokasikan, setelah Anda membuat CFileDialog, tetapi sebelum Anda memanggil DoModal. Selain itu, Anda harus mengatur m_ofn.nMaxFile dengan jumlah karakter dalam buffer yang diacu oleh m_ofn.lpstrFile. Jika Anda mengatur jumlah maksimum file yang akan dipilih ke n, ukuran buffer yang diperlukan adalah n*(_MAX_PATH + 1) + 1. Contohnya:

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

Untuk mengaktifkan pengguna mengubah ukuran kotak dialog gaya Explorer dengan menggunakan mouse atau keyboard, atur bendera OFN_ENABLESIZING. Pengaturan bendera ini diperlukan hanya jika Anda menyediakan prosedur kait atau templat kustom. Bendera hanya berfungsi dengan kotak dialog gaya Explorer; kotak dialog gaya lama tidak dapat diubah ukurannya.

Parameter lpszFilter digunakan untuk menentukan jenis nama file file harus ditampilkan dalam daftar file. String pertama dalam pasangan string menjelaskan filter; string kedua menunjukkan ekstensi nama file yang akan digunakan. Beberapa ekstensi dapat ditentukan dengan menggunakan titik koma (karakter ';') sebagai pemisah. String diakhir dengan dua karakter bilah vertikal (||), diikuti oleh karakter NULL. Anda juga dapat menggunakan objek CString untuk parameter ini.

Misalnya, Microsoft Excel memungkinkan pengguna untuk membuka file yang memiliki ekstensi .xlc (bagan) atau .xls (lembar kerja), antara lain. Filter untuk Excel dapat ditulis sebagai:

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

Namun, jika Anda berencana untuk menggunakan string ini untuk langsung memperbarui OPENFILENAME struktur, Anda harus memisahkan string Anda dengan karakter null, '\0', alih-alih bilah vertikal ('|').

Parameter bVistaStyle hanya berlaku saat berjalan di bawah Windows Vista atau yang lebih baru. Di bawah versi Windows yang lebih lama, parameter ini diabaikan. Jika bVistaStyle diatur ke TRUE, saat Anda mengkompilasi program dengan Visual Studio 2008 atau yang lebih baru, Dialog File gaya Vista baru akan digunakan. Jika tidak, Dialog File gaya MFC sebelumnya akan digunakan.

Templat dialog tidak didukung pada dialog berdasarkan bVistaStyle

Contoh

Lihat contoh untuk CFileDialog::D oModal.

CFileDialog::D oModal

Panggil fungsi ini untuk menampilkan kotak dialog file umum Windows dan perbolehkan pengguna menelusuri file dan direktori dan memasukkan nama file.

virtual INT_PTR DoModal();

Tampilkan Nilai

IDOK atau IDCANCEL. Jika IDCANCEL dikembalikan, panggil fungsi Windows CommDlgExtendedError untuk menentukan apakah terjadi kesalahan.

IDOK dan IDCANCEL adalah konstanta yang menunjukkan apakah pengguna memilih tombol OK atau Batal.

Keterangan

Jika Anda ingin menginisialisasi berbagai opsi kotak dialog file dengan mengatur anggota m_ofn struktur, Anda harus melakukan ini sebelum memanggil DoModal, tetapi setelah objek dialog dibangun.

Misalnya, jika Anda ingin mengizinkan pengguna memilih beberapa file, atur bendera OFN_ALLOWMULTISELECT sebelum memanggil DoModal, seperti yang ditunjukkan dalam contoh kode dalam topik ini.

Saat pengguna mengklik tombol OK atau Batalkan kotak dialog, atau memilih opsi Tutup dari menu kontrol kotak dialog, kontrol dikembalikan ke aplikasi Anda. Anda kemudian dapat memanggil fungsi anggota lain untuk mengambil pengaturan atau informasi input pengguna ke dalam kotak dialog.

DoModal adalah fungsi virtual yang diambil alih dari kelas CDialog.

Contoh

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

Mengaktifkan daftar drop-down pada tombol Buka atau Simpan dalam dialog.

HRESULT EnableOpenDropDown(DWORD dwIDCtl);

Parameter

dwIDCtl
ID daftar drop-down.

Keterangan

CFileDialog::EndVisualGroup

Menghentikan penambahan elemen ke grup visual dalam dialog.

HRESULT EndVisualGroup();

Tampilkan Nilai

Mengembalikan S_OK jika berhasil; nilai kesalahan jika tidak.

Keterangan

CFileDialog::GetCheckButtonState

Mengambil status tombol centang saat ini (kotak centang) dalam dialog.

HRESULT GetCheckButtonState(
    DWORD dwIDCtl,
    BOOL& bChecked);

Parameter

dwIDCtl
ID kotak centang.

bChecked
Status kotak centang. TRUE menunjukkan diperiksa; FALSE menunjukkan tidak dicentang.

Keterangan

CFileDialog::GetControlItemState

Mengambil status item saat ini dalam kontrol kontainer yang ditemukan dalam dialog.

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

Parameter

dwIDCtl
ID kontrol kontainer.

dwIDItem
ID item.

dwState
Referensi ke variabel yang menerima salah satu nilai lainnya dari enumerasi CDCONTROLSTATE yang menunjukkan status kontrol saat ini.

Keterangan

CFileDialog::GetControlState

Mengambil visibilitas saat ini dan mengaktifkan status kontrol tertentu.

HRESULT GetControlState(
    DWORD dwIDCtl,
    CDCONTROLSTATEF& dwState);

Parameter

dwIDCtl
ID kontrol.

dwState
Referensi ke variabel yang menerima satu atau beberapa nilai dari enumerasi CDCONTROLSTATE yang menunjukkan status kontrol saat ini.

Keterangan

CFileDialog::GetEditBoxText

Mengambil teks saat ini dalam kontrol kotak edit.

HRESULT GetEditBoxText(
    DWORD dwIDCtl,
    CString& strText);

Parameter

dwIDCtl
ID kotak edit.

strText
Nilai teks.

Keterangan

CFileDialog::GetFileExt

Panggil fungsi ini untuk mengambil ekstensi nama file yang dimasukkan ke dalam kotak dialog.

CString GetFileExt() const;

Tampilkan Nilai

Ekstensi nama file.

Keterangan

Misalnya, jika nama file yang dimasukkan adalah DATA.TXT, GetFileExt mengembalikan "TXT".

Jika m_ofn.Flags memiliki set bendera OFN_ALLOWMULTISELECT, string ini berisi urutan string yang dihentikan null, dengan string pertama menjadi jalur direktori grup file yang dipilih, diikuti dengan nama semua file yang dipilih oleh pengguna. Untuk mengambil nama jalur file, gunakan fungsi anggota GetStartPosition dan GetNextPathName .

CFileDialog::GetFileName

Panggil fungsi ini untuk mengambil nama nama file yang dimasukkan dalam kotak dialog.

CString GetFileName() const;

Tampilkan Nilai

Nama file.

Keterangan

Nama file mencakup awalan dan ekstensi. Misalnya, GetFileName akan mengembalikan "TEXT. DAT" untuk file C:\FILES\TEXT.DAT.

Jika m_ofn.Flags memiliki OFN_ALLOWMULTISELECT set bendera, Anda harus memanggil GetStartPosition dan GetNextPathName untuk mengambil nama jalur file.

CFileDialog::GetFileTitle

Panggil fungsi ini untuk mengambil judul file yang dimasukkan dalam kotak dialog.

CString GetFileTitle() const;

Tampilkan Nilai

Judul file.

Keterangan

Judul file hanya menyertakan awalannya, tanpa jalur atau ekstensi. Misalnya, GetFileTitle akan mengembalikan "TEXT" untuk file C:\FILES\TEXT.DAT.

Jika m_ofn.Flags memiliki set bendera OFN_ALLOWMULTISELECT, string ini berisi urutan string yang dihentikan null, dengan string pertama menjadi jalur direktori grup file yang dipilih, diikuti dengan nama semua file yang dipilih oleh pengguna. Untuk alasan ini, gunakan fungsi anggota GetStartPosition dan GetNextPathName untuk mengambil nama file berikutnya dalam daftar.

Contoh

Lihat contoh untuk CFileDialog::D oModal.

CFileDialog::GetFolderPath

Panggil fungsi anggota ini untuk mengambil jalur folder atau direktori yang saat ini terbuka untuk kotak dialog Buka atau Simpan Sebagai umum.

CString GetFolderPath() const;

Tampilkan Nilai

Objek CString yang berisi folder atau direktori yang saat ini terbuka.

Keterangan

Kotak dialog harus dibuat dengan gaya OFN_EXPLORER; jika tidak, metode akan gagal dengan pernyataan.

Anda hanya dapat memanggil metode ini saat kotak dialog sedang ditampilkan. Setelah kotak dialog ditutup, fungsi ini tidak akan lagi berfungsi, dan metode akan gagal dengan pernyataan.

CFileDialog::GetIFileDialogCustomize

Mengambil pointer ke objek COM internal untuk CFileDialog tertentu.

IFileDialogCustomize* GetIFileDialogCustomize();

Tampilkan Nilai

Penunjuk ke objek COM internal untuk CFileDialog. Anda bertanggung jawab untuk melepaskan pointer ini dengan tepat.

Keterangan

Gunakan fungsi ini hanya di bawah Windows Vista atau yang lebih baru dengan objek yang memiliki bVistaStyle diatur ke TRUE. Jika Anda menggunakan fungsi ini ketika bVistaStyle false, fungsi ini akan mengembalikan NULL dalam mode rilis dan melempar pernyataan dalam mode debug.

Untuk informasi selengkapnya tentang IFileDialogCustomize antarmuka, lihat IFileDialogCustomize.

Contoh

Contoh ini mengambil objek COM internal. Untuk menjalankan contoh kode ini, Anda harus mengkompilasinya di bawah Windows Vista atau yang lebih baru.

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

Mengambil penunjuk ke objek COM internal untuk .CFileDialog

IFileOpenDialog* GetIFileOpenDialog();

Tampilkan Nilai

Penunjuk ke objek COM internal untuk CFileDialog. Anda bertanggung jawab untuk melepaskan pointer ini dengan tepat.

Keterangan

Gunakan fungsi ini hanya di bawah Windows Vista atau yang lebih baru dengan objek yang memiliki bVistaStyle diatur ke TRUE. Fungsi ini mengembalikan NULL jika CFileDialog bukan kotak dialog Buka atau jika bVistaStyle diatur ke FALSE. Dalam kasus akhir ini, fungsi hanya mengembalikan NULL dalam mode rilis - dalam mode debug, fungsi tersebut akan memberikan pernyataan.

Untuk informasi selengkapnya tentang IFileOpenDialog antarmuka, lihat IFileOpenDialog.

Contoh

Contoh ini mengambil objek COM internal. Untuk menjalankan kode ini, Anda harus mengkompilasinya di bawah Windows Vista atau yang lebih baru.

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

Mengambil penunjuk ke objek COM internal untuk .CFileDialog

IFileSaveDialog* GetIFileSaveDialog();

Tampilkan Nilai

Penunjuk ke objek COM internal untuk CFileDialog. Anda bertanggung jawab untuk melepaskan pointer ini dengan tepat.

Keterangan

Gunakan fungsi ini hanya di bawah Windows Vista atau yang lebih baru dengan objek yang memiliki bVistaStyle diatur ke TRUE. Fungsi ini akan mengembalikan NULL jika CFileDialog bukan kotak dialog Simpan atau jika bVistaStyle diatur ke FALSE. Dalam kasus akhir ini, fungsi hanya mengembalikan NULL dalam mode rilis - dalam mode debug, fungsi tersebut akan memberikan pernyataan.

Untuk informasi selengkapnya tentang IFileSaveDialog antarmuka, lihat IFileSaveDialog.

Contoh

Contoh ini mengambil objek COM internal. Untuk menjalankan contoh kode ini, Anda harus mengkompilasinya di bawah Windows Vista atau yang lebih baru.

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

Panggil fungsi ini untuk mengambil nama file berikutnya dari grup yang dipilih dalam kotak dialog.

CString GetNextPathName(POSITION& pos) const;

Parameter

pos
Referensi ke nilai POSITION yang dikembalikan oleh panggilan sebelumnya GetNextPathName atau GetStartPosition fungsi. NULL jika akhir daftar telah tercapai.

Tampilkan Nilai

Jalur lengkap file.

Keterangan

Jalur nama file menyertakan judul file ditambah seluruh jalur direktori. Misalnya, GetNextPathName akan mengembalikan "C:\FILES\TEXT. DAT" untuk file C:\FILES\TEXT.DAT. Anda dapat menggunakan GetNextPathName dalam perulangan perulangan penerusan jika Anda membuat posisi awal dengan panggilan ke GetStartPosition.

Jika pilihan hanya terdiri dari satu file, nama file tersebut akan dikembalikan.

CFileDialog::GetOFN

Mengambil struktur terkait OPENFILENAME .

const OPENFILENAME& GetOFN() const;

OPENFILENAME& GetOFN();

Tampilkan Nilai

Struktur OPENFILENAME .

Keterangan

Gunakan versi kedua fungsi ini untuk menginisialisasi tampilan kotak dialog Buka File atau Simpan Sebagai File setelah dibuat tetapi sebelum ditampilkan dengan DoModal fungsi anggota. Misalnya, Anda dapat mengatur lpstrTitle anggota m_ofn ke keterangan yang Anda inginkan untuk memiliki kotak dialog.

CFileDialog::GetPathName

Panggil fungsi ini untuk mengambil jalur lengkap file yang dimasukkan dalam kotak dialog.

CString GetPathName() const;

Tampilkan Nilai

Jalur lengkap file.

Keterangan

Jalur nama file menyertakan judul file ditambah seluruh jalur direktori. Misalnya, GetPathName akan mengembalikan "C:\FILES\TEXT. DAT" untuk file C:\FILES\TEXT.DAT.

Jika m_ofn.Flags memiliki set bendera OFN_ALLOWMULTISELECT, string ini berisi urutan string yang diteminasi null, dengan string pertama menjadi jalur direktori grup file yang dipilih, diikuti dengan nama semua file yang dipilih oleh pengguna. Untuk alasan ini, gunakan fungsi anggota GetStartPosition dan GetNextPathName untuk mengambil nama file berikutnya dalam daftar.

Contoh

Lihat contoh untuk CFileDialog::D oModal.

CFileDialog::GetReadOnlyPref

Panggil fungsi ini untuk menentukan apakah kotak centang Baca Saja telah dipilih dalam kotak dialog Buka File standar Windows dan Simpan File Sebagai.

BOOL GetReadOnlyPref() const;

Tampilkan Nilai

Bukan nol jika kotak centang Baca Saja dalam kotak dialog dipilih; jika tidak, 0.

Keterangan

Anda bisa menyembunyikan kotak centang Baca Saja dengan mengatur gaya OFN_HIDEREADONLY di CFileDialog konstruktor.

Catatan

Objek gaya CFileDialog Windows Vista atau yang lebih baru tidak mendukung fungsi ini. Mencoba menggunakan fungsi ini pada gaya CFileDialog Windows Vista atau yang lebih baru akan melempar CNotSupportedException.

CFileDialog::GetResult

Mengambil pilihan yang dibuat pengguna dalam dialog.

IShellItem* GetResult() throw();

Tampilkan Nilai

Penunjuk ke IShellItem yang mewakili pilihan pengguna.

Keterangan

CFileDialog::GetResults

Mengambil pilihan pengguna dalam dialog yang memungkinkan beberapa pilihan.

IShellItemArray* GetResults() throw();

Tampilkan Nilai

Penunjuk ke IShellItemArray tempat item yang dipilih dalam dialog dapat diakses.

Keterangan

CFileDialog::GetSelectedControlItem

Mengambil item tertentu dari kontrol kontainer yang ditentukan dalam dialog.

HRESULT GetSelectedControlItem(
    DWORD dwIDCtl,
    DWORD& dwIDItem);

Parameter

dwIDCtl
ID kontrol kontainer.

dwIDItem
ID item yang dipilih pengguna dalam kontrol.

Keterangan

CFileDialog::GetStartPosition

Panggil fungsi anggota ini untuk mengambil posisi nama jalur file pertama dalam daftar, jika m_ofn.Flags memiliki set bendera OFN_ALLOWMULTISELECT.

POSITION GetStartPosition() const;

Tampilkan Nilai

Nilai POSISI yang dapat digunakan untuk iterasi; NULL jika daftar kosong.

CFileDialog::HideControl

Panggil fungsi anggota ini untuk menyembunyikan kontrol yang ditentukan dalam kotak dialog Buka atau Simpan Sebagai umum gaya Penjelajah.

void HideControl(int nID);

Parameter

Nid
ID kontrol yang akan disembunyikan.

Keterangan

Kotak dialog harus dibuat dengan gaya OFN_EXPLORER; jika tidak, fungsi akan gagal dengan pernyataan.

CFileDialog::IsPickFoldersMode

Menentukan apakah dialog saat ini berada dalam mode pemilih folder.

BOOL IsPickFoldersMode() const;

Tampilkan Nilai

TRUE jika dialog berada dalam mode pemilih folder; jika tidak FALSE.

Keterangan

CFileDialog::m_ofn

m_ofn adalah struktur jenis OPENFILENAME. Data dalam struktur ini mewakili status saat ini dari CFileDialog.

Keterangan

Gunakan struktur ini untuk menginisialisasi tampilan kotak dialog Buka File atau Simpan Sebagai File setelah Anda membangunnya tetapi sebelum Anda menampilkannya dengan metode DoModal . Misalnya, Anda dapat mengatur anggota lpstrTitle ke m_ofn keterangan yang Anda inginkan untuk memiliki kotak dialog.

Dengan gaya Windows Vista atau yang lebih baru dari CFileDialog, m_ofn tidak dijamin selalu cocok dengan status kotak dialog. Ini disinkronkan dengan kotak dialog di versi Windows sebelumnya. Lihat CFileDialog::ApplyOFNToShellDialog dan CFileDialog::UpdateOFNFromShellDialog untuk informasi selengkapnya tentang menyinkronkan m_ofn struktur dan CFileDialog status di bawah Windows Vista atau yang lebih baru.

Dialog file gaya Windows Vista atau yang lebih baru tidak mendukung anggota dan bendera tertentu dari CFileDialog. Akibatnya, ini tidak akan berpengaruh.

Berikut ini adalah daftar anggota yang tidak didukung oleh Windows Vista atau yang lebih baru:

  • lpstrCustomFilter

  • lpstrInitialDir

  • lCustData

  • lpfnHook

  • lpTemplateName

Bendera berikut ini tidak didukung dan oleh karena itu tidak berpengaruh ketika Anda menggunakan Windows Vista atau gaya yang lebih baru dari CFileDialog:

  • OFN_ENABLEHOOK

  • OFN_ENABLEINCLUDENOTIFY

  • OFN_ENABLETEMPLATE

  • OFN_ENABLETEMPLATEHANDLE

  • OFN_EXPLORER

  • OFN_EXTENSIONDIFFERENT

  • OFN_HIDEREADONLY

  • OFN_LONGNAMES - secara efektif selalu aktif di Windows Vista atau yang lebih baru

  • OFN_NOLONGNAMES - secara efektif selalu nonaktif di Windows Vista atau yang lebih baru

  • OFN_NONETWORKBUTTON - secara efektif selalu aktif di Windows Vista atau yang lebih baru

  • OFN_READONLY

  • OFN_SHOWHELP

Untuk informasi selengkapnya tentang struktur ini, lihat struktur OPENFILENAME di Windows SDK.

CFileDialog::MakeProminent

Tempatkan kontrol dalam dialog sehingga menonjol dibandingkan dengan kontrol lain.

HRESULT MakeProminent(DWORD dwIDCtl);

Parameter

dwIDCtl
ID kontrol.

Keterangan

CFileDialog::OnButtonClicked

Dipanggil saat tombol diklik.

virtual void OnButtonClicked(DWORD dwIDCtl);

Parameter

dwIDCtl
ID tombol.

Keterangan

CFileDialog::OnCheckButtonToggled

Dipanggil saat kotak centang dicentang atau tidak dicentang.

virtual void OnCheckButtonToggled(
    DWORD dwIDCtl,
    BOOL bChecked);

Parameter

dwIDCtl
ID kotak centang.

bChecked
Dicentang atau tidak dicentang.

Keterangan

CFileDialog::OnControlActivating

Dipanggil ketika kontrol diaktifkan.

virtual void OnControlActivating(DWORD dwIDCtl);

Parameter

dwIDCtl
ID kontrol.

Keterangan

CFileDialog::OnFileNameChange

Ambil alih metode ini jika Anda ingin menangani pesan WM_NOTIFY CDN_SELCHANGE.

virtual void OnFileNameChange();

Keterangan

Sistem mengirim pesan CDN_SELCHANGE saat pengguna memilih file atau folder baru dalam daftar file kotak dialog Buka atau Simpan Sebagai . Ambil alih metode ini jika Anda ingin melakukan tindakan apa pun sebagai respons terhadap pesan ini.

Sistem mengirim pesan ini hanya jika kotak dialog dibuat dengan bendera OFN_EXPLORER diaktifkan. Untuk informasi selengkapnya tentang pemberitahuan, lihat CDN_SELCHANGE. Untuk informasi tentang bendera OFN_EXPLORER, lihat struktur OPENFILENAME dan Buka dan Simpan Sebagai Kotak Dialog.

CFileDialog::OnFileNameOK

Ambil alih fungsi ini hanya jika Anda ingin memberikan validasi kustom nama file yang dimasukkan ke dalam kotak dialog file umum.

virtual BOOL OnFileNameOK();

Tampilkan Nilai

1 jika nama file bukan nama file yang valid; jika tidak, 0.

Keterangan

Fungsi ini memungkinkan Anda menolak nama file karena alasan khusus aplikasi apa pun. Biasanya, Anda tidak perlu menggunakan fungsi ini karena kerangka kerja menyediakan validasi default nama file dan menampilkan kotak pesan jika nama file yang tidak valid dimasukkan.

Jika 1 dikembalikan, kotak dialog akan tetap ditampilkan agar pengguna memasukkan nama file lain. Prosedur dialog menutup dialog jika pengembalian adalah 0. Nilai pengembalian bukan nol lainnya saat ini dicadangkan dan tidak boleh digunakan.

CFileDialog::OnFolderChange

Ambil alih fungsi ini untuk menangani pesan WM_NOTIFYCDN_FOLDERCHANGE.

virtual void OnFolderChange();

Keterangan

Pesan pemberitahuan dikirim saat folder baru dibuka dalam kotak dialog Buka atau Simpan Sebagai.

Pemberitahuan dikirim hanya jika kotak dialog dibuat dengan gaya OFN_EXPLORER. Untuk informasi selengkapnya tentang pemberitahuan, lihat CDN_FOLDERCHANGE. Untuk informasi tentang gaya OFN_EXPLORER, lihat struktur OPENFILENAME dan Kotak Dialog Buka dan Simpan Sebagai.

CFileDialog::OnInitDone

Ambil alih fungsi ini untuk menangani pesan WM_NOTIFY CDN_INITDONE.

virtual void OnInitDone();

Keterangan

Sistem mengirim pesan pemberitahuan ini ketika sistem telah selesai mengatur kontrol dalam kotak dialog Buka atau Simpan Sebagai untuk memberi ruang bagi kontrol kotak dialog anak.

Sistem mengirimkan ini hanya jika kotak dialog dibuat dengan gaya OFN_EXPLORER. Untuk informasi selengkapnya tentang pemberitahuan, lihat CDN_INITDONE. Untuk informasi tentang gaya OFN_EXPLORER, lihat struktur OPENFILENAME dan Kotak Dialog Buka dan Simpan Sebagai.

Catatan

Dialog file gaya Windows Vista atau yang lebih baru tidak mendukung fungsi ini. Mencoba menggunakan fungsi ini pada dialog file gaya Windows Vista atau yang lebih baru akan melempar CNotSupportedException.

CFileDialog::OnItemSelected

Dipanggil saat item kontainer dipilih.

virtual void OnItemSelected(
    DWORD dwIDCtl,
    DWORD dwIDItem);

Parameter

dwIDCtl
ID kontrol kontainer.

dwIDItem
ID item.

Keterangan

CFileDialog::OnLBSelChangedNotify

Fungsi ini dipanggil setiap kali pilihan saat ini dalam kotak daftar akan berubah.

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

Parameter

nIDBox
ID kotak daftar atau kotak kombo tempat pilihan terjadi.

iCurSel
Indeks pilihan saat ini.

nCode
Kode pemberitahuan kontrol. Parameter ini harus memiliki salah satu nilai berikut:

  • CD_LBSELCHANGE Menentukan iCurSel adalah item yang dipilih dalam kotak daftar pilihan tunggal.

  • CD_LBSELSUB Menentukan bahwa iCurSel tidak lagi dipilih dalam kotak daftar multiseleksi.

  • CD_LBSELADD Menentukan bahwa iCurSel dipilih dalam kotak daftar multiseleksi.

  • CD_LBSELNOITEMS Menentukan bahwa tidak ada pilihan dalam kotak daftar multiseleksi.

Keterangan

Ambil alih fungsi ini untuk menyediakan penanganan kustom perubahan pilihan dalam kotak daftar. Misalnya, Anda dapat menggunakan fungsi ini untuk menampilkan hak akses atau tanggal-terakhir-dimodifikasi dari setiap file yang dipilih pengguna.

CFileDialog::OnShareViolation

Ambil alih fungsi ini untuk memberikan penanganan kustom pelanggaran berbagi.

virtual UINT OnShareViolation(LPCTSTR lpszPathName);

Parameter

lpszPathName
Jalur file tempat pelanggaran berbagi terjadi.

Tampilkan Nilai

Salah satu dari nilai berikut:

  • OFN_SHAREFALLTHROUGH Nama file dikembalikan dari kotak dialog.

  • OFN_SHARENOWARN Tidak ada tindakan lebih lanjut yang perlu diambil.

  • OFN_SHAREWARN Pengguna menerima pesan peringatan standar untuk kesalahan ini.

Keterangan

Biasanya, Anda tidak perlu menggunakan fungsi ini karena kerangka kerja menyediakan pemeriksaan default pelanggaran berbagi dan menampilkan kotak pesan jika pelanggaran berbagi terjadi.

Jika Anda ingin menonaktifkan pemeriksaan pelanggaran berbagi, gunakan operator OR bitwise untuk menggabungkan bendera OFN_SHAREAWARE dengan m_ofn.Flags.

CFileDialog::OnTypeChange

Ambil alih fungsi ini untuk menangani pesan WM_NOTIFYCDN_TYPECHANGE.

virtual void OnTypeChange();

Keterangan

Pesan pemberitahuan dikirim ketika pengguna memilih jenis file baru dari daftar jenis file dalam kotak dialog Buka atau Simpan Sebagai.

Pemberitahuan dikirim hanya jika kotak dialog dibuat dengan gaya OFN_EXPLORER. Untuk informasi selengkapnya tentang pemberitahuan, lihat CDN_TYPECHANGE. Untuk informasi tentang gaya OFN_EXPLORER, lihat struktur OPENFILENAME dan Kotak Dialog Buka dan Simpan Sebagai.

CFileDialog::RemoveControlItem

Menghapus item dari kontrol kontainer dalam dialog.

HRESULT RemoveControlItem(
    DWORD dwIDCtl,
    DWORD dwIDItem);

Parameter

dwIDCtl
ID kontrol kontainer untuk menghapus item.

dwIDItem
ID item.

Keterangan

CFileDialog::SetCheckButtonState

Mengatur status tombol centang saat ini (kotak centang) dalam dialog.

HRESULT SetCheckButtonState(
    DWORD dwIDCtl,
    BOOL bChecked);

Parameter

dwIDCtl
ID kotak centang.

bChecked
Status kotak centang. TRUE menunjukkan diperiksa; FALSE menunjukkan Tidak Dicentang.

Keterangan

CFileDialog::SetControlItemState

Mengatur status item saat ini dalam kontrol kontainer yang ditemukan dalam dialog.

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

Parameter

dwIDCtl
ID kontrol kontainer.

dwIDItem
ID item.

dwState
Satu atau beberapa nilai dari enumerasi CDCONTROLSTATE yang menunjukkan status kontrol baru.

Keterangan

CFileDialog::SetControlItemText

Mengatur teks item kontrol. Misalnya, teks yang menyertai tombol radio atau item di menu.

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

Parameter

dwIDCtl
ID kontrol kontainer.

dwIDItem
ID item.

strLabel
Teks item.

Keterangan

CFileDialog::SetControlLabel

Mengatur teks yang terkait dengan kontrol, seperti teks tombol atau label kotak edit.

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

Parameter

dwIDCtl
ID kontrol.

strLabel
Nama kontrol.

Keterangan

CFileDialog::SetControlState

Mengatur visibilitas saat ini dan mengaktifkan status kontrol tertentu.

HRESULT SetControlState(
    DWORD dwIDCtl,
    CDCONTROLSTATEF dwState);

Parameter

dwIDCtl
ID kontrol.

dwState
Satu atau beberapa nilai dari enumerasi CDCONTROLSTATE yang menunjukkan status kontrol saat ini.

Keterangan

CFileDialog::SetControlText

Panggil metode ini untuk mengatur teks untuk kontrol yang ditentukan dalam kotak dialog Buka atau Simpan Sebagai gaya Penjelajah.

void SetControlText(
    int nID,
    LPCSTR lpsz);

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

Parameter

Nid
[di] ID kontrol untuk mengatur teks.

lpsz
[di] Penunjuk ke string yang berisi teks yang akan diatur untuk kontrol.

Keterangan

Kedua versi fungsi ini valid untuk aplikasi yang menggunakan Unicode. Namun, hanya versi dengan jenis LPCSTR yang valid untuk aplikasi yang menggunakan ANSI.

Untuk menggunakan metode ini, Anda harus membuat kotak dialog dengan gaya OFN_EXPLORER. Jika tidak, fungsi akan gagal dengan pernyataan.

CFileDialog::SetDefExt

Panggil fungsi ini untuk mengatur ekstensi nama file default untuk kotak dialog Buka atau Simpan Sebagai umum gaya Penjelajah.

void SetDefExt(LPCSTR lpsz);

Parameter

lpsz
Penunjuk ke string yang berisi ekstensi default yang akan digunakan untuk objek kotak dialog. String ini tidak boleh berisi titik (.).

Keterangan

Kotak dialog harus dibuat dengan gaya OFN_EXPLORER; jika tidak, fungsi akan gagal dengan pernyataan.

CFileDialog::SetEditBoxText

Mengatur teks saat ini dalam kontrol kotak edit.

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

Parameter

dwIDCtl
ID kotak edit.

strText
Nilai teks.

Keterangan

CFileDialog::SetProperties

Menyediakan penyimpanan properti yang menentukan nilai default yang akan digunakan untuk item yang disimpan.

BOOL SetProperties(LPCWSTR lpszPropList);

Parameter

lpszPropList
Daftar properti yang telah ditentukan sebelumnya dipisahkan oleh ";". Untuk daftar bendera, lihat bagian Bendera OPENFILENAME.

Keterangan

CFileDialog::SetSelectedControlItem

Mengatur status terpilih item tertentu dalam grup tombol opsi atau kotak kombo yang ditemukan dalam dialog.

HRESULT SetSelectedControlItem(
    DWORD dwIDCtl,
    DWORD dwIDItem);

Parameter

dwIDCtl
ID kontrol kontainer.

dwIDItem
ID item yang dipilih pengguna dalam kontrol.

Keterangan

CFileDialog::SetTemplate

Mengatur templat kotak dialog untuk objek CFileDialog .

void SetTemplate(
    UINT nWin3ID,
    UINT nWin4ID);

void SetTemplate(
    LPCTSTR lpWin3ID,
    LPCTSTR lpWin4ID);

Parameter

nWin3ID
[di] Berisi nomor ID sumber daya templat untuk objek non-Explorer CFileDialog . Templat ini hanya digunakan pada Windows NT 3.51 atau ketika gaya OFN_EXPLORER tidak ada.

nWin4ID
[di] Berisi nomor ID sumber daya templat untuk objek Explorer CFileDialog . Templat ini hanya digunakan pada Windows NT 4.0 dan versi yang lebih baru, Windows 95 dan versi yang lebih baru, atau ketika gaya OFN_EXPLORER ada.

lpWin3ID
[di] Berisi nama sumber daya templat untuk objek non-Explorer CFileDialog . Templat ini hanya digunakan pada Windows NT 3.51 atau ketika gaya OFN_EXPLORER tidak ada.

lpWin4ID
[di] Berisi nama sumber daya templat objek Explorer CFileDialog . Templat ini hanya digunakan pada Windows NT 4.0 dan versi yang lebih baru, Windows 95 dan versi yang lebih baru, atau ketika gaya OFN_EXPLORER ada.

Keterangan

Sistem hanya akan menggunakan salah satu templat yang ditentukan. Sistem menentukan templat mana yang akan digunakan berdasarkan keberadaan gaya OFN_EXPLORER dan sistem operasi tempat aplikasi berjalan. Dengan menentukan templat gaya non-Explorer dan Explorer, mudah untuk mendukung Windows NT 3.51, Windows NT 4.0 dan versi yang lebih baru, dan Windows 95 dan versi yang lebih baru.

Catatan

Kotak dialog file gaya Windows Vista atau yang lebih baru tidak mendukung fungsi ini. Mencoba menggunakan fungsi ini pada kotak dialog file gaya Windows Vista atau yang lebih baru akan melempar CNotSupportedException. Alternatifnya adalah menggunakan dialog yang disesuaikan. Untuk informasi selengkapnya tentang menggunakan kustom CFileDialog, lihat IFileDialogCustomize.

CFileDialog::StartVisualGroup

Mendeklarasikan grup visual dalam dialog. Panggilan berikutnya ke metode "tambahkan" menambahkan elemen tersebut ke grup ini.

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

Parameter

dwIDCtl
ID grup visual.

strLabel
Nama grup.

Keterangan

CFileDialog::UpdateOFNFromShellDialog

m_ofn Memperbarui struktur data CFileDialog berdasarkan status objek internal saat ini.

void UpdateOFNFromShellDialog();

Keterangan

Dalam versi Windows sebelum Windows Vista, struktur data OPENFILENAME anggota terus disinkronkan dengan status CFileDialog. Setiap perubahan pada variabel anggota m_ofn secara langsung memengaruhi status kotak dialog. Selain itu, setiap perubahan pada status dialog segera memperbarui variabel anggota m_ofn.

Di Windows Vista atau yang lebih baru, m_ofn struktur data tidak diperbarui secara otomatis. Untuk menjamin akurasi data dalam m_ofn variabel anggota, Anda harus memanggil UpdateOFNFromShellDialog fungsi sebelum mengakses data. Windows memanggil fungsi ini secara otomatis selama pemrosesan IFileDialog::OnFileOK.

Untuk informasi selengkapnya tentang cara menggunakan kelas di CFileDialog bawah Windows Vista atau yang lebih baru, lihat Kelas CFileDialog.

Contoh

Contoh ini memperbarui CFileDialog sebelum menampilkannya. Sebelum memperbarui m_ofn variabel anggota, kita perlu menyinkronkannya ke status kotak dialog saat ini.

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

Baca juga

Kelas CCommonDialog
Bagan Hierarki