Příklad: Zobrazení dialogového okna pomocí příkazu v nabídce
Toto téma obsahuje postupy pro:
Zobrazení modálního dialogového okna pomocí příkazu nabídky
Zobrazení bezmodového dialogového okna pomocí příkazu nabídky
Oba ukázkové postupy jsou pro aplikace MFC a budou fungovat v aplikaci, kterou vytvoříte pomocí Průvodce aplikací MFC.
Postupy používají následující názvy a hodnoty:
Položka | Název nebo hodnota |
---|---|
Aplikace | DisplayDialog |
Příkaz nabídky | Příkaz Test v nabídce Zobrazit; ID příkazu = ID_VIEW_TEST |
Dialogové okno | Testovací dialogové okno; Třída = CTestDialog; Hlavičkový soubor = TestDialog.h; Proměnná = testdlg, ptestdlg |
Obslužná rutina příkazu | OnViewTest |
Zobrazení modálního dialogového okna
Vytvoření příkazu nabídky; viz Vytváření nabídek nebo položek nabídky.
Vytvoření dialogového okna; viz Spuštění Editoru dialogů.
Přidejte třídu pro své dialogové okno. Další informace najdete v tématu Přidání třídy .
V zobrazení třídy vyberte třídu dokumentu (CDisplayDialogDoc). V okně Vlastnosti klikněte na tlačítko Události . Poklikejte na ID příkazu nabídky (ID_VIEW_TEST). Potom klikněte na šipku dolů a vyberte <Přidat> OnViewTest.
Pokud jste do sálového počítače aplikace MDI přidali příkaz nabídky, vyberte místo toho třídu aplikace (CDisplayDialogApp).
Přidejte následující příkaz include do CDisplayDialogDoc.cpp (nebo CDisplayDialogApp.cpp) za existující příkazy include:
#include "TestDialog.h"
Přidejte následující kód pro
OnViewTest
implementaci funkce:CTestDialog testdlg; testdlg.DoModal();
Zobrazení dialogového okna bez režimu
Proveďte první čtyři kroky k zobrazení modálního dialogového okna s výjimkou výběru třídy zobrazení (CDisplayDialogView) v kroku 4.
Upravit DisplayDialogView.h:
- Deklarujte třídu dialogového okna před deklarací první třídy:
class CTestDialog;
- Deklarujte ukazatel na dialogové okno za veřejným oddílem Atributy:
CTestDialog* m_pTestDlg;
Upravit DisplayDialogView.cpp:
- Za existující příkaz include přidejte následující příkaz include:
#include "TestDialog.h"
- Do konstruktoru přidejte následující kód:
m_pTestDlg = NULL;
- Do destruktoru přidejte následující kód:
delete m_pTestDlg;
- Přidejte následující kód pro
OnViewTest
implementaci funkce:
if (NULL == m_pTestDlg) { m_pTestDlg = new CTestDialog(this); m_pTestDlg->Create(CTestDialog::IDD, this); } m_pTestDlg->ShowWindow(SW_SHOW);