Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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.