Contoh: Menampilkan Kotak Dialog melalui Perintah Menu
Topik ini berisi prosedur untuk:
Tampilkan kotak dialog modal melalui perintah menu.
Tampilkan kotak dialog tanpa mode melalui perintah menu.
Kedua prosedur sampel adalah untuk aplikasi MFC dan akan berfungsi dalam aplikasi yang Anda buat dengan MFC Application Wizard.
Prosedur menggunakan nama dan nilai berikut:
Item | Nama atau nilai |
---|---|
Aplikasi | DisplayDialog |
Perintah menu | Perintah uji pada menu Tampilan; ID Perintah = ID_VIEW_TEST |
Kotak dialog | Kotak dialog uji; Kelas = CTestDialog; Header file = TestDialog.h; Variabel = testdlg, ptestdlg |
Penangan perintah | OnViewTest |
Untuk menampilkan kotak dialog modal
Buat perintah menu; lihat Membuat Menu atau Item Menu.
Buat kotak dialog; lihat Memulai Editor Dialog.
Tambahkan kelas untuk kotak dialog Anda. Lihat Menambahkan Kelas untuk informasi selengkapnya.
Di Tampilan Kelas, pilih kelas dokumen (CDisplayDialogDoc). Di jendela Properti , klik tombol Peristiwa . Klik dua kali ID perintah menu (ID_VIEW_TEST). Selanjutnya, klik panah bawah dan pilih <Tambahkan> OnViewTest.
Jika Anda menambahkan perintah menu ke mainframe aplikasi MDI, pilih kelas aplikasi (CDisplayDialogApp) sebagai gantinya.
Tambahkan pernyataan include berikut ke CDisplayDialogDoc.cpp (atau CDisplayDialogApp.cpp) setelah pernyataan include yang ada:
#include "TestDialog.h"
Tambahkan kode berikut ke untuk
OnViewTest
mengimplementasikan fungsi:CTestDialog testdlg; testdlg.DoModal();
Untuk menampilkan kotak dialog tanpa mode
Lakukan empat langkah pertama untuk menampilkan kotak dialog modal, kecuali pilih kelas tampilan (CDisplayDialogView) di langkah 4.
Edit DisplayDialogView.h:
- Deklarasikan kelas kotak dialog sebelum deklarasi kelas pertama:
class CTestDialog;
- Deklarasikan penunjuk ke kotak dialog setelah bagian Publik atribut:
CTestDialog* m_pTestDlg;
Edit DisplayDialogView.cpp:
- Tambahkan pernyataan sertakan berikut setelah pernyataan sertakan yang ada:
#include "TestDialog.h"
- Tambahkan kode berikut ke konstruktor:
m_pTestDlg = NULL;
- Tambahkan kode berikut ke destruktor:
delete m_pTestDlg;
- Tambahkan kode berikut ke untuk
OnViewTest
mengimplementasikan fungsi:
if (NULL == m_pTestDlg) { m_pTestDlg = new CTestDialog(this); m_pTestDlg->Create(CTestDialog::IDD, this); } m_pTestDlg->ShowWindow(SW_SHOW);