Przykład: Wyświetlania okna dialogowego za pomocą polecenia Menu
Ten temat zawiera procedury:
Wyświetlanie modalnego okna dialogowego za pomocą polecenia menu.
Wyświetlić okno dialogowe niemodalny za pomocą polecenia menu.
Obie procedury próbki są dla aplikacji MFC i będzie działać w aplikacji można utworzyć z Kreatora aplikacji MFC.
Procedury użyj następującej nazwy i wartości:
Element |
Nazwę lub wartość |
---|---|
Aplikacja |
DisplayDialog |
Polecenia menu |
Test polecenia menu Widok; Identyfikator polecenia = ID_VIEW_TEST |
Okno dialogowe |
Okno dialogowe Test; Klasa = CTestDialog; Plik nagłówka = TestDialog.h; Zmienna = testdlg-ptestdlg |
Polecenia obsługi |
OnViewTest |
Aby wyświetlić modalne okno dialogowe
Tworzenie polecenia menu; zobacz Tworzenie menu lub elementy Menu.
Utworzyć okno dialogowe; zobacz Uruchamianie edytora okien dialogowych.
Dodać klasę użytkownika okna dialogowego.Zobacz Dodawanie klasy Aby uzyskać więcej informacji.
W Widoku klasy, wybierz opcję Klasa dokumentu (CDisplayDialogDoc).W Właściwości okna, kliknij zdarzenia przycisk.Kliknij dwukrotnie identyfikator polecenia menu (ID_VIEW_TEST) w lewym okienku Właściwości okno i wybierz polecenia.W prawym okienku kliknij strzałkę w dół i wybierz <Add> OnViewTest.
Jeśli polecenie menu jest dodany do typu mainframe MDI aplikacji, należy wybrać klasę aplikacji (CDisplayDialogApp).
Dodaj następujące zawierać oświadczenie CDisplayDialogDoc.cpp (lub CDisplayDialogApp.cpp) po istniejące zawierają stwierdzenia:
#include "TestDialog.h"
Dodaj następujący kod do OnViewTest w celu zaimplementowania funkcji:
CTestDialog testdlg; testdlg.DoModal();
Aby wyświetlić okno dialogowe niemodalny
Wykonaj pierwsze cztery kroki, aby wyświetlić modalne okno dialogowe, wybierz widok klasy (CDisplayDialogView) w kroku 4.
Edytowanie DisplayDialogView.h:
Klasa pole dialogowe poprzedzających zgłoszenie pierwszej klasy, oświadczam:
class CTestDialog;
Po sekcji publicznej atrybuty, należy zadeklarować wskaźnika do okna dialogowego:
CTestDialog* m_pTestDlg;
Edytowanie DisplayDialogView.cpp:
Dodaj następujące zawierać oświadczenie po istniejące zawierają stwierdzenia:
#include "TestDialog.h"
Dodaj następujący kod do konstruktora:
m_pTestDlg = NULL;
Dodaj następujący kod do destruktor:
delete m_pTestDlg;
Dodaj następujący kod do OnViewTest w celu zaimplementowania funkcji:
if (NULL == m_pTestDlg) { m_pTestDlg = new CTestDialog(this); m_pTestDlg->Create(CTestDialog::IDD, this); } m_pTestDlg->ShowWindow(SW_SHOW);
Ponadto zobacz następujący artykuł z bazy wiedzy Knowledge Base:
- Q251059: HOWTO: własne nazwy klasy okna dialogowego MFC