Kelas CAxDialogImpl
Kelas ini mengimplementasikan kotak dialog (modal atau modeless) yang menghosting kontrol ActiveX.
Penting
Kelas ini dan anggotanya tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime.
Sintaks
template <class T, class TBase = CWindow>
class ATL_NO_VTABLE CAxDialogImpl : public CDialogImplBaseT<TBase>
Parameter
T
Kelas Anda, berasal dari CAxDialogImpl
.
TBase
Kelas jendela dasar untuk CDialogImplBaseT
.
Anggota
Metode Publik
Nama | Deskripsi |
---|---|
CAxDialogImpl::AdviseSinkMap | Panggil metode ini untuk menyarankan atau membatalkan penambahan semua entri dalam peta peristiwa peta sink objek. |
CAxDialogImpl::Create | Panggil metode ini untuk membuat kotak dialog tanpa mode. |
CAxDialogImpl::D estroyWindow | Panggil metode ini untuk menghancurkan kotak dialog tanpa mode. |
CAxDialogImpl::D oModal | Panggil metode ini untuk membuat kotak dialog modal. |
CAxDialogImpl::EndDialog | Panggil metode ini untuk menghancurkan kotak dialog modal. |
CAxDialogImpl::GetDialogProc | Panggil metode ini untuk mendapatkan penunjuk ke DialogProc fungsi panggilan balik. |
CAxDialogImpl::GetIDD | Panggil metode ini untuk mendapatkan ID sumber daya templat dialog |
CAxDialogImpl::IsDialogMessage | Panggil metode ini untuk menentukan apakah pesan ditujukan untuk kotak dialog ini dan, jika ya, proses pesan. |
Anggota Data yang Dilindungi
Nama | Deskripsi |
---|---|
CAxDialogImpl::m_bModal | Variabel yang hanya ada di build debug dan diatur ke true jika kotak dialog dimodifikasi. |
Keterangan
CAxDialogImpl
memungkinkan Anda membuat kotak dialog modal atau tanpa mode. CAxDialogImpl
menyediakan prosedur kotak dialog, yang menggunakan peta pesan default untuk mengarahkan pesan ke penangan yang sesuai.
CAxDialogImpl
berasal dari CDialogImplBaseT
, yang pada gilirannya berasal dari TBase (secara default, CWindow
) dan CMessageMap
.
Kelas Anda harus menentukan anggota IDD yang menentukan ID sumber daya templat dialog. Misalnya, menambahkan objek Dialog ATL menggunakan kotak dialog Tambahkan Kelas secara otomatis menambahkan baris berikut ke kelas Anda:
enum { IDD = IDD_MYDLG };
di mana MyDialog
adalah Nama pendek yang dimasukkan dalam Wizard Dialog ATL.
Lihat Menerapkan Kotak Dialog untuk informasi selengkapnya.
Perhatikan bahwa kontrol ActiveX pada kotak dialog modal yang dibuat dengan CAxDialogImpl
tidak akan mendukung kunci akselerator. Untuk mendukung kunci akselerator pada kotak dialog yang dibuat dengan CAxDialogImpl
, buat kotak dialog tanpa mode dan, menggunakan perulangan pesan Anda sendiri, gunakan CAxDialogImpl::IsDialogMessage setelah mendapatkan pesan dari antrean untuk menangani kunci akselerator.
Untuk informasi selengkapnya tentang CAxDialogImpl
, lihat FAQ Kontainer Kontrol ATL.
Hierarki Warisan
TBase
CWindowImplRoot
CDialogImplBaseT
CAxDialogImpl
Persyaratan
Header: atlwin.h
CAxDialogImpl::AdviseSinkMap
Panggil metode ini untuk menyarankan atau membatalkan penambahan semua entri dalam peta peristiwa peta sink objek.
HRESULT AdviseSinkMap(bool bAdvise);
Parameter
bAdvise
Atur ke true jika semua entri sink harus disarankan; false jika semua entri sink tidak akan diawasi.
Tampilkan Nilai
Mengembalikan S_OK saat berhasil, atau kesalahan HRESULT saat gagal.
CAxDialogImpl::Create
Panggil metode ini untuk membuat kotak dialog tanpa mode.
HWND Create(HWND hWndParent, LPARAM dwInitParam = NULL);
HWND Create(HWND hWndParent, RECT&, LPARAM dwInitParam = NULL);
Parameter
hWndParent
[di] Handel ke jendela pemilik.
dwInitParam
[di] Menentukan nilai yang akan diteruskan ke kotak dialog dalam parameter lParam dari pesan WM_INITDIALOG.
RECT&
Parameter ini tidak digunakan. Parameter ini diteruskan oleh CComControl
.
Tampilkan Nilai
Handel ke kotak dialog yang baru dibuat.
Keterangan
Kotak dialog ini secara otomatis dilampirkan ke CAxDialogImpl
objek. Untuk membuat kotak dialog modal, panggil DoModal.
Penimpaan kedua hanya disediakan sehingga kotak dialog dapat digunakan dengan CComControl.
CAxDialogImpl::D estroyWindow
Panggil metode ini untuk menghancurkan kotak dialog tanpa mode.
BOOL DestroyWindow();
Tampilkan Nilai
TRUE jika jendela berhasil dihancurkan; jika tidak FALSE.
Keterangan
Jangan panggil DestroyWindow
untuk menghancurkan kotak dialog modal. Panggil EndDialog sebagai gantinya.
CAxDialogImpl::D oModal
Panggil metode ini untuk membuat kotak dialog modal.
INT_PTR DoModal(
HWND hWndParent = ::GetActiveWindow(),
LPARAM dwInitParam = NULL);
Parameter
hWndParent
[di] Handel ke jendela pemilik. Nilai default adalah nilai pengembalian fungsi GetActiveWindow Win32.
dwInitParam
[di] Menentukan nilai yang akan diteruskan ke kotak dialog dalam parameter lParam dari pesan WM_INITDIALOG.
Tampilkan Nilai
Jika berhasil, nilai parameter nRetCode yang ditentukan dalam panggilan ke EndDialog; jika tidak, -1.
Keterangan
Kotak dialog ini secara otomatis dilampirkan ke CAxDialogImpl
objek.
Untuk membuat kotak dialog tanpa mode, panggil Buat.
CAxDialogImpl::EndDialog
Panggil metode ini untuk menghancurkan kotak dialog modal.
BOOL EndDialog(int nRetCode);
Parameter
nRetCode
[di] Nilai yang akan dikembalikan oleh DoModal.
Tampilkan Nilai
TRUE jika kotak dialog dihancurkan; jika tidak, FALSE.
Keterangan
EndDialog
harus dipanggil melalui prosedur kotak dialog. Setelah kotak dialog dihancurkan, Windows menggunakan nilai nRetCode sebagai nilai pengembalian untuk DoModal
, yang membuat kotak dialog.
Catatan
Jangan panggil EndDialog
untuk menghancurkan kotak dialog tanpa mode. Panggil DestroyWindow sebagai gantinya.
CAxDialogImpl::GetDialogProc
Panggil metode ini untuk mendapatkan penunjuk ke DialogProc
fungsi panggilan balik.
virtual DLGPROC GetDialogProc();
Tampilkan Nilai
Mengembalikan penunjuk ke DialogProc
fungsi panggilan balik.
Keterangan
Fungsi ini DialogProc
adalah fungsi panggilan balik yang ditentukan aplikasi.
CAxDialogImpl::GetIDD
Panggil metode ini untuk mendapatkan ID sumber daya templat dialog.
int GetIDD();
Tampilkan Nilai
Mengembalikan ID sumber daya templat dialog.
CAxDialogImpl::IsDialogMessage
Panggil metode ini untuk menentukan apakah pesan ditujukan untuk kotak dialog ini dan, jika ya, proses pesan.
BOOL IsDialogMessage(LPMSG pMsg);
Parameter
pMsg
Penunjuk ke struktur MSG yang berisi pesan yang akan diperiksa.
Tampilkan Nilai
Mengembalikan TRUE jika pesan telah diproses, FALSE jika tidak.
Keterangan
Metode ini dimaksudkan untuk dipanggil dari dalam perulangan pesan.
CAxDialogImpl::m_bModal
Variabel yang hanya ada di build debug dan diatur ke true jika kotak dialog dimodifikasi.
bool m_bModal;