MDI-Beispiel: Demonstriert MDI ohne Doc-View-Architektur
Das MDI-Beispiel verwendet MFC (Multiple Document Interface-) Unterstützung ohne Dokument-/Ansichtarchitektur.
Ein weiteres MDI-Beispiel finden Sie unter MDIDOCVW.
MDI-veranschaulicht auch das Microsoft Windows-Zeitgeber, CColorDialogCBitmap, und Ändern des Standardcursors eines Fensters.
Sicherheitshinweis |
---|
Dieser Beispielcode soll ein Konzept veranschaulichen, und es wird nur den Code, der für dieses Konzept relevant sind. Möglicherweise erfüllt dieser nicht die Sicherheitsanforderungen für eine bestimmte Umgebung, und er sollte nicht genau wie dargestellt verwendet werden. Wir empfehlen, Sicherheits- und Fehlerbehandlungscode hinzuzufügen, um Ihre Projekte sicherer und stabiler zu machen. Microsoft stellt diesen Beispielcode "Wie besehen"keine Garantien. |
So erhalten Sie Beispiele und Anweisungen für deren Installation:
Um Beispiele von Visual Studio zuzugreifen
im Menü Hilfe Menü klicken Beispiele.
Standardmäßig sind die Beispiele in installiert. Laufwerk: \Programme\Microsoft visual Studio 10.0\Samples\.
- Die neueste Version dieses Beispiels und eine Liste der anderen Beispiele finden Sie unter Visual Studio Samples auf der MSDN-Website.
Erstellen und Ausführen des Beispiels
So erstellen und MDI-Beispiels führen
Öffnen Sie die Projektmappe mdi.sln.
erstellen Sie Menü, klicken Sie auf erstellen.
Debuggen Sie auf Menü, klicken Sie auf Starten ohne Debuggen.
Die MDI-Beispielanwendung bietet ein übergeordnetes Fenster mit zwei unterschiedliche Typen von untergeordneten MDI-Fenstern: ein Fenster Bounce steht, in dem sich ein Ball hüpfenderund ein Fenster Hello, in dem der Text "Hello, World!" angezeigt wird Sie können jedem Fenstertyp mehrere Instanzen erstellen.
Klicken Sie auf New Bounce oder New Hello im Dateimenü um ein neues MDI-untergeordneten Fenster zu erstellen. Beide untergeordnete MDI-Fenster wird bestimmt, welche Menüs gezeigt werden diese aktiv sind. Beide Fenster verfügen über ein Menü Color. Wenn Sie aus diesem Menü eine Farbe auswählen, wird die Farbe des hüpfenden Balls oder den Text Hallo aktualisiert. Wählen Sie das benutzerdefinierte Element ein Dialogfeld Farbe aufrufen, aus denen Sie eine spezielle Farbe auswählen können.
Das Fenster Bounce steht hat auch eine Menü Speed, aus dem Sie die Geschwindigkeit festlegen können an der der Ball über den Bildschirm bewegen.
Wenn Sie im Fenster Bounce steht minimieren, Beachten Sie, dass kein statisches Symbol vorhanden ist. Vielmehr eine kleine Kugel bewegt sich um in das Symbol. Im Gegensatz dazu hat das Hello-Fenster ein normales Symbol.
MDI ohne Dokumente und Ansichten
Im Gegensatz zu einer von Anwendungs-Assistenten erstellten MDI-Anwendung verwendet diese Beispielanwendung nicht Unterstützung des Frameworks für Dokumente und Ansichten. Daher wird es nicht Dokumentvorlagen; verwendetDie Anwendung InitInstanceAddDocTemplate nicht aufgerufen.
Diese Anwendung nutzt trotzdem vollständigen MDI-Unterstützung des Frameworks. CMainFrame is derived from CMDIFrameWnd. CBounceWnd and CHelloWnd are derived from CMDIChildWnd. Befehle im Fenster z. B. nebeneinander, werden von der Standardimplementierung des Frameworks in CMDIFrameWnd behandelt.
Obwohl CBounceWnd und CHelloWndCreate überschreiben, ist diese Überschreibung nicht notwendig, um MDI-Unterstützung des Frameworks zu nutzen. Die Überschreibung von Create veranschaulicht, wie der Standardcursor und das Standardsymbol eines Fensters ändern. Ändern der Standardcursor oder das Standardsymbol eines Fensters erfordert das Registrieren eines neuen WNDCLASSAFXRegisterWndClass und übergeben den Namen des WNDCLASS im Aufruf von Create.
Schlüsselwörter
Dieses Beispiel demonstriert die Verwendung der folgenden Schlüsselwörter:
AfxGetInstanceHandle; AfxRegisterWndClass; CBitmap::CreateCompatibleBitmap; CCmdUI::SetCheck; CColorDialog::DoModal; CColorDialog::GetColor; CDC::BitBlt; CDC::CreateCompatibleDC; CDC::DeleteDC; CDC::DrawText; CDC::Ellipse; CDC::FillRect; CDC::GetDeviceCaps; CDC::SelectObject; CDC::SetBkColor; CDC::SetTextColor; CFrameWnd::LoadFrame; CFrameWnd::rectDefault; CGdiObject::DeleteObject; CMDIChildWnd::Create; CMenu::LoadMenu; CWinApp::InitInstance; CWnd::DestroyWindow; CWnd::GetClientRect; CWnd::GetCurrentMessage; CWnd::GetDC; CWnd::Invalidate; CWnd::KillTimer; CWnd::MessageBox; CWnd::OnCreate; CWnd::OnPaint; CWnd::OnSize; CWnd::OnTimer; CWnd::ReleaseDC; CWnd::SetTimer; CWnd::ShowWindow; CWnd::UpdateWindow; GetSysColor; LOWORD; LoadCursor; LoadIcon; MAKEINTRESOURCE; RGB; max; min
Hinweis
Einige Beispiele, z. B. eine, wurden nicht geändert, um Änderungen in der Visual C++-Assistenten, Bibliotheken und Compiler, demonstrieren aber dennoch wie Sie die gewünschte Aufgabe durchführen.