INFO: Vytváranie dialógové okno sú nemodálne s MFC knižnice

Preklady článku Preklady článku
ID článku: 103788 - Zobraziť produkty, ktorých sa tento článok týka.
Tento článok ukazuje ako vytvoriť sú nemodálne dialógové okno pole pomocou dialógové okno-Šablóna zdrojov pomocou MFC.

Vybudovať dialógové okno CModeless, by mali byť tieto kroky nasleduje:

  1. Vytvoriť dialógové okno triedy odvodené z CDialog a predvoľbou Funkcia create() členských CDialog. Napríklad, môžete mať kód, podobný nasledujúcemu:
          class CModeless: public CDialog
               {
                 .
                 .
                 .
                 public:
                     CModeless(){ }
                     BOOL Create(UINT nID, CWnd * pWnd)
                          { return CDialog::Create(nID,pWnd);}
                 .
                 .
                 .
               };
    				
    Poznámka: Mohli necháte ClassWizard generovať dialógové okno triedy a potom jednoducho pridať funkciu Create().
  2. Napísať kód na zostavenie objekt dialógové okno triedy a vytvoriť dialógové okno pole. Napríklad, ak máte menu položku, ktorú mali zobraziť dialógové okno, môžete mať kód, ktorý sa podobá takto:
          void CMainFrame::OnModeless()
            {
                pdlg = new CModeless;
                pdlg->Create(IDD_DIALOG1,this);
            }
    				
    kde CMainFrame::pdlg je definovaný ako:
    CModeless * pdlg;
    Poznámka: Je dôležité priradiť objekt na Nalož skôr ako zásobník, ak chcete zabrániť dialógovom okne sú nemodálne zničiť pri funkciu odíde.
  3. Musíte zavolať CWnd::DestroyWindow() v OnCancel, alebo vždy, keď sú nemodálne dialógové okno musí byť zničené.
          void CModeless::OnCancel()
          {
              DestroyWindow();
          }
    				
  4. Prepísanie CWnd::PostNcDestroy() v dialógovom okne triede a odstrániť dialógové okno pole objekt:
       virtual void CModeless::PostNcDestroy() {delete this;}
    				
    PostNcDestroy() je funkciou virtuálne členské CWnd triedy, ktorá je zvolávať funkciu OnNcDestroy().
Sú nemodálne dialógové okno triedy prepíše typicky OnOK() a OnCancel() člen funkcie pre volanie DestroyWindow() a by nemalo volanie funkcie CDialog::OnOK() a CDialog::OnCancel() základná trieda. Volanie funkcie CDialog::OnOK() a CDialog::OnCancel() EndDialog(). EndDialog() by mala byť volána iba pri používaní Modálne dialógové okno boxy.

Ak používate dialógové okno výmeny údajov (DDX) a dialógové okno overenie údajov (DDV), ste OnOK() obslužný program pre dialógové okno triedy môžu podobať po:
   void CModeless::OnOK()
   {
           if (!UpdateData(TRUE))
             {
               TRACE0("UpdateData failed during dialog termination\n");
               // The UpdateData routine will set focus to correct item
               return;
             }
           DestroyWindow();
   }
		
Rozbaliť všetko | Zbaliť všetko

Vlastnosti

ID článku: 103788 - Posledná kontrola: 10. októbra 2011 - Revízia: 2.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • Microsoft Foundation Class Library 4.2, pri použití s produktom:
    • 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
Kľúčové slová: 
kbdlg kbinfo kbuidesign kbmt KB103788 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem:103788
Upozornenie na neaktuálny obsah článku databázy KB
Tento článok obsahuje informácie o produktoch, pre ktoré spoločnosť Microsoft už neposkytuje technickú podporu. Z tohto dôvodu je tento článok publikovaný ako nezmenený a už nebude aktualizovaný.

Odošlite odozvu

 

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