INFO: Een modaal dialoogvenster maken met MFC-bibliotheken

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 103788 - Bekijk de producten waarop dit artikel van toepassing is.
In dit artikel wordt beschreven hoe maken een modaal dialoogvenster vak met een in het dialoogvenster sjabloon bron met gebruikmaking van MFC.

Als u het dialoogvenster CModeless, moeten de volgende stappen worden gevolgd:

  1. Maak een dialoogvenster klasse is afgeleid van CDialog en overschrijven de Functie van de Create() lid van CDialog. Stel, hebt u de code de volgende strekking:
          class CModeless: public CDialog
               {
                 .
                 .
                 .
                 public:
                     CModeless(){ }
                     BOOL Create(UINT nID, CWnd * pWnd)
                          { return CDialog::Create(nID,pWnd);}
                 .
                 .
                 .
               };
    				
    Opmerking: U kunt genereren van het dialoogvenster klasse ClassWizard en Voeg de functie Create().
  2. Code schrijven om een object van de klasse van het dialoogvenster samenstellen en maken het dialoogvenster vak. Bijvoorbeeld, als u een menu-item het dialoogvenster moet worden weergegeven, mogelijk code die lijkt op het volgende:
          void CMainFrame::OnModeless()
            {
                pdlg = new CModeless;
                pdlg->Create(IDD_DIALOG1,this);
            }
    				
    waarbij CMainFrame::pdlg is gedefinieerd als:
    CModeless * pdlg;
    Opmerking: Het is belangrijk dat het object op de heap toewijzen in plaats van de stapel als u wilt voorkomen dat het modale dialoogvenster bij het verlaten van de functie vernietigd.
  3. U moet CWnd::DestroyWindow() aanroepen in OnCancel, of wanneer de niet-modaal dialoogvenster moet worden vernietigd.
          void CModeless::OnCancel()
          {
              DestroyWindow();
          }
    				
  4. CWnd::PostNcDestroy() overschrijven in het dialoogvenster klasse verwijderen de dialoogvenster box-object:
       virtual void CModeless::PostNcDestroy() {delete this;}
    				
    PostNcDestroy() is een lidfunctie virtuele van de klasse CWnd door de functie OnNcDestroy() aangeroepen.
Een modaal dialoogvenster klasse wordt doorgaans prioriteit boven de OnOK() en OnCancel() lid functies aanroepen van DestroyWindow() en niet de klasse base CDialog::OnOK() en CDialog::OnCancel() functies aanroepen. De CDialog::OnOK() en CDialog::OnCancel() functies aanroepen EndDialog(). EndDialog() moet worden aangeroepen, alleen als modaal dialoogvenster vakken.

Als u dialoogvenster Data Exchange (DDX) en het dialoogvenster gegevensvalidatie (DDV) bent OnOK()-handler voor de klasse dialoogvenster lijkt de volgende:
   void CModeless::OnOK()
   {
           if (!UpdateData(TRUE))
             {
               TRACE0("UpdateData failed during dialog termination\n");
               // The UpdateData routine will set focus to correct item
               return;
             }
           DestroyWindow();
   }
		
Alles uitklappen | Alles samenvouwen

Eigenschappen

Artikel ID: 103788 - Laatste beoordeling: vrijdag 6 juli 2012 - Wijziging: 4.0
De informatie in dit artikel is van toepassing op:
  • Microsoft Foundation Class Library 4.2 op de volgende platformen
    • Microsoft Visual C++ 1.0 Professional Edition
    • Microsoft Visual C++ 1.52 Professional Edition
    • Microsoft Visual C++ 2.1
    • Microsoft Visual C++ 4.0 Standard Edition
Trefwoorden: 
kbdlg kbinfo kbuidesign kbmt KB103788 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.
De Engelstalige versie van dit artikel is de volgende: 103788
Vrijwaring inhoud KB-artikelen over niet langer ondersteunde producten
Dit artikel heeft betrekking op producten waarvoor Microsoft geen ondersteuning meer biedt. Daarom wordt dit artikel alleen in de huidige vorm aangeboden en wordt het niet meer bijgewerkt.

Geef ons feedback

 

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