CDialog sınıfı, iletişim kutuları ekranda görüntülemek için kullanılan temel sınıftır. İletişim kutuları iki tür vardır: kalıcı ve kalıcı olmayan. Uygulama devam etmeden önce bir kalıcı iletişim kutusu kullanıcı tarafından kapatılması gerekir. Kullanıcı iletişim kutusunu görüntülemek ve iptal etme veya iletişim kutusunu kaldırma başka bir göreve dönmek bir kalıcı olmayan bir iletişim kutusu sağlar.
İletişim şablon ve CDialogbir arada CDialog nesnedir-türetilmiş sınıf. İletişim kutusu düzenleyicisi kullanın iletişim şablonu oluşturmak ve kaynak mağaza sonra CDialog türetilmiş bir sınıf oluşturmak için ClassWizard kullanın.
Başka bir pencereye benzer bir iletişim kutusu, Windows iletilerini alır. Bir iletişim kutusunda, özellikle çünkü kullanıcı iletişim kutusu ile nasıl etkileşim kurduğu iletişim kutusunun denetimler bildirim iletilerini ele ilgilendi. İletişim kutusunda her denetim tarafından oluşturulan olası iletileri ClassWizard gözatar ve işlemek istediğiniz iletileri seçebilirsiniz. ClassWizard sonra uygun mesaj-eşleme girdilerini ve ileti işleyicisi üye işlevler için yeni sınıf sizin için ekler. Uygulamaya özgü kod işleyicisi üye işlevler yazmak yeterlidir.
İsterseniz, size her zaman mesaj-eşleme girdilerini ve üye işlevleri kendiniz ClassWizard yerine yazabilirsiniz.
Tüm ama en önemsiz iletişim kutusu, iletişim kutusunun denetimler kullanıcı tarafından girilen verileri depolamak için veya kullanıcı verilerini görüntülemek için türetilmiş iletişim sınıf için üye değişkenleri ekleyin. ClassWizard veriye eşlenen iletişim kutusunun bu denetimleri aracılığıyla tarar ve her denetim için bir üye değişkeni oluşturmanız da sıkıştırılmış klasörü açmanız istenir. Aynı zamanda, bir değişken türü ve izin verilen değer aralığı boyunca her değişken için seçin. ClassWizard üye değişkenlerini da türetilmiş iletişim sınıfa ekler.
ClassWizard sonra otomatik olarak üye değişkenleri iletişim kutusunun denetimler arasındaki veri alışverişi yapmak için bir veri harita yazıyor. Veri eşleme iletişim kutusunda uygun değerlerle denetimlerini başlatmak fonksiyonları sağlar, veri almak ve verileri doğrula.
Kalıcı bir iletişim kutusu oluşturmak için nesneyi yığındaki türetilen iletişim sınıfı için Oluşturucu kullanarak oluşturmak ve iletişim penceresi ve denetimler oluşturmak için DoModal arayın. Kalıcı olmayan bir iletişim oluşturmak isterseniz, Oluştur iletişim sınıfınızın Oluşturucu çağrısı.
Kullanarak hafızasında şablon oluşturabilirsiniz bir dlgtemplate veri yapısı Win32 sdk belgelerinde açıklandığı gibi. Bir CDialog nesnesi oluşturmak sonra kalıcı olmayan bir iletişim kutusu oluşturmak için CreateIndirect arayın veya InitModalIndirect ve DoModal bir kalıcı iletişim kutusu oluşturmak için çağrı.
ClassWizard, ClassWizard yeni iletişim sınıfınızın ekleyen CWnd::DoDataExchange geçersiz kılma olarak döviz ve doğrulama veri göster yazıyor. CWnd DoDataExchange üye fonksiyonu Döviz ve doğrulama işlevleri hakkında daha fazla bilgi için bkz:.
Programcı ve framework DoDataExchange dolaylı olarak CWnd::UpdateData çağrı yoluyla arama.
Kullanıcı bir kalıcı iletişim kutusunu kapatmak için Tamam düğmesini tıklattığında çerçeve UpdateData çağırır. (İptal düğmesini tıklattıysanız veriler alınmaz.) OnInitDialog varsayılan uygulanması da denetimleri başlangıç değerleri ayarlamak için UpdateData çağırır. Genellikle daha fazla denetimlerini başlatmak üzere OnInitDialog geçersiz kılar. OnInitDialog sonra tüm iletişim denetimleri oluşturulur ve sadece önce iletişim kutusu görüntülenir denir.
Sen-ebilmek seslenmek CWnd::UpdateData kalıcı veya kalıcı olmayan bir iletişim kutusu yürütülmesi sırasında herhangi bir zamanda.
Bir iletişim kutusu el geliştirirseniz, kendinizi türetilen iletişim kutusu sınıfına gerekli üye değişken ekleyin ve ayarlamak veya bu değerleri almak için üye işlevler ekleme.
ClassWizard ile ilgili daha fazla bilgi için bkz: ClassWizard kullanarak Visual c++ programlama Kılavuzu.
Uygulamanızda iletişim kutusunun arka plan rengini ayarlamak için arama CWinApp::SetDialogBkColor.
Kalıcı bir iletişim kutusu otomatik olarak ne zaman Tamam veya İptal düğmesi kullanıcı presler veya kodunuzu EndDialog üye işlevini çağırdığında kapatır.
Kalıcı olmayan bir iletişim kutusu uygulamak her zaman OnCancel üye işlevi geçersiz kılmak ve DestroyWindow gelen içinde arayın. Çünkü iletişim kutusu görünmez yapar ama yok değil EndDialog, aramaları temel sınıf CDialog::OnCancel, don't call. Beri modsuz iletişim kutuları genellikle Yeniile ayrılan Bu, silmek için de PostNcDestroy kalıcı olmayan iletişim kutuları için geçersiz. Kalıcı iletişim kutularının genellikle çerçeve üzerinde inşa edilir ve PostNcDestroy Temizleme gerekmez.
CDialoghakkında daha fazla bilgi için bkz: yazı Visual c++ programlama Kılavuzu İletişim kutusunu konular.
# include lt;afxwin.h>
Sı&nıf üyeleri |nbsp; Temel sınıf | Hiyerarşi çizelgesi
Samples MFC Sample DBFETCH | MFC Sample DLGCBR32 | MFC Sample DLGTEMPL | MFC Sample EXTBIND | MFC Sample FTPTREE | MFC Sample HELLO | MFC Sample MDIBIND | MFC Sample VCTERM
Index