Aracılığıyla paylaş


CDialogImpl Sınıfı

Bu sınıf kalıcı veya modsuz iletişim kutusu oluşturmak için yöntemler sağlar.

Önemli

Bu sınıf ve üyeleri Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz.

Sözdizimi

template <class T,
    class TBase = CWindow>
    class ATL_NO_VTABLE CDialogImpl : public CDialogImplBaseT<TBase>

Parametreler

T
sınıfından CDialogImpltüretilen sınıfınız.

TBase
Yeni sınıfınızın temel sınıfı. Varsayılan temel sınıf CWindow'dır.

Üyeler

Yöntemler

İşlev Açıklama
Oluştur Modsuz bir iletişim kutusu oluşturur.
DestroyWindow Modsuz bir iletişim kutusunu yok eder.
DoModal Kalıcı bir iletişim kutusu oluşturur.
EndDialog Kalıcı bir iletişim kutusunu yok eder.

CDialogImplBaseT Yöntemleri

İşlev Açıklama
GetDialogProc Geçerli iletişim kutusu yordamını döndürür.
MapDialogRect Belirtilen dikdörtgenin iletişim kutusu birimlerini ekran birimlerine (piksel) eşler.
OnFinalMessage Genellikle WM_NCDESTROY son iletiyi aldıktan sonra çağrılır.

Statik işlevler

İşlev Açıklama
DialogProc İletişim kutusuna gönderilen iletileri işler.
StartDialogProc İletişim kutusuna gönderilen iletileri işlemek için ilk ileti alındığında çağrılır.

Açıklamalar

ile CDialogImpl kalıcı veya kalıcı olmayan bir iletişim kutusu oluşturabilirsiniz. CDialogImpl , iletileri uygun işleyicilere yönlendirmek için varsayılan ileti eşlemesini kullanan iletişim kutusu yordamını sağlar.

Temel sınıf yıkıcısı ~CWindowImplRoot , nesneyi yok etmeden önce pencerenin gitmesini sağlar.

CDialogImpl ,'den CDialogImplBaseTtüretilir ve bu da 'den CWindowImplRoottüretilir.

Not

Sınıfınızın iletişim kutusu şablonu kaynak kimliğini belirten bir IDD üye tanımlaması gerekir. Örneğin, ATL Proje Sihirbazı sınıfınıza otomatik olarak aşağıdaki satırı ekler:

enum { IDD = IDD_MYDLG };

buradaMyDlg, sihirbazın Adlar sayfasına girilen Kısa addır.

Bunun hakkında daha fazla bilgi için: Bkz:
Denetim oluşturma ATL Öğreticisi
ATL'de iletişim kutularını kullanma ATL Pencere Sınıfları
ATL Proje Sihirbazı ATL Projesi Oluşturma
İletişim kutuları Windows SDK'sında İletişim Kutuları ve sonraki konular

Gereksinimler

Üst bilgi: atlwin.h

CDialogImpl::Create

Modsuz bir iletişim kutusu oluşturur.

HWND Create(
    HWND hWndParent,
    LPARAM dwInitParam = NULL );

HWND Create(
    HWND hWndParent,
    RECT&,
    LPARAM dwInitParam = NULL);

Parametreler

hWndParent
[in] Sahip penceresinin tutamacı.

RECT&rect [in] İletişim kutusunun boyutunu ve konumunu belirten bir RECT yapısı.

dwInitParam
[in] WM_INITDIALOG iletisinin lParam parametresindeki iletişim kutusuna geçirecek değeri belirtir.

Dönüş Değeri

Yeni oluşturulan iletişim kutusunun tutamacı.

Açıklamalar

Bu iletişim kutusu nesneye CDialogImpl otomatik olarak eklenir. Kalıcı bir iletişim kutusu oluşturmak için DoModal çağrısı yapın. Yukarıdaki ikinci geçersiz kılma yalnızca CComControl ile kullanılır.

CDialogImpl::D estroyWindow

Modsuz bir iletişim kutusunu yok eder.

BOOL DestroyWindow();

Dönüş Değeri

İletişim kutusu başarıyla yok edildiyse TRUE; aksi takdirde YANLIŞ.

Açıklamalar

İletişim kutusu başarıyla yok edildiyse TRUE döndürür; aksi takdirde YANLIŞ.

CDialogImpl::D ialogProc

Bu statik işlev, iletişim kutusu yordamını uygular.

static LRESULT CALLBACK DialogProc(
    HWND hWnd,
    UINT uMsg,
    WPARAM wParam,
    LPARAM lParam);

Parametreler

hWnd
[in] İletişim kutusunun tutamacı.

uMsg
[in] İletişim kutusuna gönderilen ileti.

wParam
[in] İletiye özgü ek bilgiler.

lParam
[in] İletiye özgü ek bilgiler.

Dönüş Değeri

İleti işlenirse TRUE; aksi takdirde YANLIŞ.

Açıklamalar

DialogProc , iletileri uygun işleyicilere yönlendirmek için varsayılan ileti eşlemesini kullanır.

İletileri işlemek için farklı bir mekanizma sağlamak üzere geçersiz kılabilirsiniz DialogProc .

CDialogImpl::D oModal

Kalıcı bir iletişim kutusu oluşturur.

INT_PTR DoModal(
    HWND hWndParent = ::GetActiveWindow(),
    LPARAM dwInitParam = NULL);

Parametreler

hWndParent
[in] Sahip penceresinin tutamacı. Varsayılan değer, GetActiveWindow Win32 işlevinin dönüş değeridir.

dwInitParam
[in] WM_INITDIALOG iletisinin lParam parametresindeki iletişim kutusuna geçirecek değeri belirtir.

Dönüş Değeri

Başarılı olursa, EndDialog çağrısında belirtilen nRetCode parametresinin değeri. Aksi takdirde, -1.

Açıklamalar

Bu iletişim kutusu nesneye CDialogImpl otomatik olarak eklenir.

Modsuz bir iletişim kutusu oluşturmak için Oluştur'u arayın.

CDialogImpl::EndDialog

Kalıcı bir iletişim kutusunu yok eder.

BOOL EndDialog(int nRetCode);

Parametreler

nRetCode
[in] CDialogImpl::D oModal tarafından döndürülecek değer.

Dönüş Değeri

İletişim kutusu yok edilirse DOĞRU; aksi takdirde YANLIŞ.

Açıklamalar

EndDialog iletişim kutusu yordamı aracılığıyla çağrılmalıdır. İletişim kutusu yok edildikten sonra Windows, iletişim kutusunu oluşturan için dönüş değeri olarak nRetCode değerini DoModalkullanır.

Not

Modsuz bir iletişim kutusunu yok etmek için aramayın EndDialog . Bunun yerine CWindow::D estroyWindow çağrısı yapın.

CDialogImpl::GetDialogProc

Geçerli iletişim kutusu yordamını döndürür DialogProc.

virtual WNDPROC GetDialogProc();

Dönüş Değeri

Geçerli iletişim kutusu yordamı.

Açıklamalar

İletişim kutusu yordamını kendinizle değiştirmek için bu yöntemi geçersiz kılın.

CDialogImpl::MapDialogRect

Belirtilen dikdörtgenin iletişim kutusu birimlerini ekran birimlerine (piksel) dönüştürür (eşler).

BOOL MapDialogRect(LPRECT lpRect);

Parametreler

lpRect
CRect Güncelleştirme bölgesini kapsayan güncelleştirmenin istemci koordinatlarını almak için bir nesneye veya RECT yapısına işaret eder.

Dönüş Değeri

Güncelleştirme başarılı olursa sıfır olmayan; Güncelleştirme başarısız olursa 0. Genişletilmiş hata bilgilerini almak için çağrısında bulunur GetLastError.

Açıklamalar

İşlev, belirtilen RECT yapıdaki koordinatları dönüştürülen koordinatlarla değiştirir ve bu da yapının iletişim kutusu oluşturmak veya iletişim kutusu içinde bir denetim konumlandırmak için kullanılmasını sağlar.

CDialogImpl::OnFinalMessage

Son ileti alındıktan sonra çağrılır (genellikle WM_NCDESTROY).

virtual void OnFinalMessage(HWND hWnd);

Parametreler

hWnd
[in] Yok edilen pencerenin tutamacı.

Açıklamalar

Pencere yok etme işlemi sırasında nesnenizi otomatik olarak silmek istiyorsanız, burada delete olarak adlandırabileceğinizi unutmayın.

CDialogImpl::StartDialogProc

İlk ileti alındığında, iletişim kutusuna gönderilen iletileri işlemek için yalnızca bir kez çağrılır.

static LRESULT CALLBACK StartDialogProc(
    HWND hWnd,
    UINT uMsg,
    WPARAM wParam,
    LPARAM lParam);

Parametreler

hWnd
[in] İletişim kutusunun tutamacı.

uMsg
[in] İletişim kutusuna gönderilen ileti.

wParam
[in] İletiye özgü ek bilgiler.

lParam
[in] İletiye özgü ek bilgiler.

Dönüş Değeri

Pencere yordamı.

Açıklamalar

öğesine yapılan ilk çağrıdan StartDialogProcDialogProc sonra bir iletişim kutusu yordamı olarak ayarlanır ve diğer çağrılar oraya gider.

Ayrıca bkz.

BEGIN_MSG_MAP
Sınıfa Genel Bakış