Bagikan melalui


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

CMessageMap

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;

Lihat juga

Kelas CDialogImpl
Gambaran Umum Kelas