BILGI: MFC kitaplıklarını bir engelleyici olmayan iletişim kutusu oluşturma

Makale çevirileri Makale çevirileri
Makale numarası: 103788 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makalede, MFC kullanarak bir iletişim kutusu şablon kaynağını kullanan bir engelleyici olmayan iletişim kutusu oluşturulması gösterilmiştir.

Bir <a0>CModeless</a0> iletişim kutusu oluşturmak için <a0></a0>, aşağıdaki adımları gelmelidir:

  1. Iletişim CDialog ' türetilmiş sınıf oluşturmak ve CDialog Create() üye işlevi geçersiz kılar. Örneğin, aşağıdakine benzer bir kod olabilir:
          class CModeless: public CDialog
               {
                 .
                 .
                 .
                 public:
                     CModeless(){ }
                     BOOL Create(UINT nID, CWnd * pWnd)
                          { return CDialog::Create(nID,pWnd);}
                 .
                 .
                 .
               };
    				
    Not: iletişim sınıfı oluşturmak ve Create() işlevi yalnızca ekleme ClassWizard olanak verebilir.
  2. Iletişim kutusu penceresi <a0>iletişim</a0> sınıfının bir nesne oluşturmak için bir kod yazın. Örneğin, iletişim kutusunda görüntülenmelidir bir menü öğesi varsa, aşağıdakine benzer bir kod olabilir:
          void CMainFrame::OnModeless()
            {
                pdlg = new CModeless;
                pdlg->Create(IDD_DIALOG1,this);
            }
    				
    CMainFrame::pdlg gibi tanımlanır:
    CModeless * pdlg;
    Not: It engelleyici olmayan iletişim kutusu, fonksiyonun çıkıldığı zaman özelleştirmeler önlemek isterseniz, nesneyi yığın yerine öbek ayırmak önemlidir.
  3. CWnd::DestroyWindow() OnCancel veya her engelleyici olmayan iletişim kutusunu özelleştirmeler gerektiğinde çağırmalısınız.
          void CModeless::OnCancel()
          {
              DestroyWindow();
          }
    				
  4. Iletişim kutusunda nesneyi silmek için kullanacağınız iletişim sınıf CWnd::PostNcDestroy() geçersiz:
       virtual void CModeless::PostNcDestroy() {delete this;}
    				
    PostNcDestroy() sanal üyenin OnNcDestroy() işlev tarafından çağrılan CWnd sınıfının işlevidir.
Engelleyici olmayan iletişim sınıf genellikle OnOK() geçersiz kılar ve OnCancel() DestroyWindow() aranacak işlev ve temel sınıf CDialog::OnOK() ve CDialog::OnCancel() işlevi çağırmalıdır. CDialog::OnOK() ve CDialog::OnCancel() işlevleri EndDialog() arayın. Kalıcı iletişim kutuları kullanılırken, EndDialog() çağrılmalıdır.

Iletişim Data Exchange (DDX) ve iletişim kutusu veri doğrulama (DDV) kullanıyorsanız, iletişim sınıfınızın aşağıdakine benzer için OnOK() işleyicisi sen:
   void CModeless::OnOK()
   {
           if (!UpdateData(TRUE))
             {
               TRACE0("UpdateData failed during dialog termination\n");
               // The UpdateData routine will set focus to correct item
               return;
             }
           DestroyWindow();
   }
		
Hepsini aç | Hepsini kapa

Özellikler

Makale numarası: 103788 - Last Review: 21 Kasım 2006 Salı - Gözden geçirme: 3.1
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Foundation Class Library 4.2, Ne zaman ne ile kullanilir:
    • Microsoft Visual C++ 1.0 Professional Edition
    • Microsoft Visual C++ 1.5 Professional Edition
    • Microsoft Visual C++ 1.51
    • Microsoft Visual C++ 1.52 Professional Edition
    • Microsoft Visual C++ 1.0 Professional Edition
    • Microsoft Visual C++ 2.0 Professional Edition
    • Microsoft Visual C++ 2.1
    • Microsoft Visual C++ 4.0 Standard Edition
Anahtar Kelimeler: 
kbmt kbdlg kbinfo kbuidesign KB103788 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:103788
Kullanım Dışı Bilgi Bankası İçeriği Yasal Uyarı
Bu makale, Microsoft'un artık destek sağlamadığı ürünler ile ilgili olarak yazılmıştır. Bu nedenle, bu makale "olduğu gibi" sağlanmıştır ve bundan sonra güncelleştirilmeyecektir.

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com