Freigeben über


PROPDLG-Beispiel: Demonstriert die Unterstützung von Eigenschaftenseiten

Aktualisiert: November 2007

Das PROPDLG-Beispiel demonstriert die MFC-Unterstützung für Eigenschaftenblätter oder Dialogfelder im Registerformat. Darüber hinaus wird in diesem Beispiel ein nicht modales Minirahmenfenster dargestellt.

Bei der PROPDLG-Beispielanwendung handelt es sich um ein einfaches Objektzeichenprogramm, bei dem die Form- und Farbattribute der ausgewählten Objekte mithilfe von Eigenschaftenblättern eingegeben werden können. Ein Beispiel für ein Objektzeichenprogramm mit einem größeren Funktionsumfang finden Sie im DRAWCLI-Beispiel.

Sicherheitshinweis:

Dieser Beispielcode dient dazu, ein Konzept zu veranschaulichen. Er sollte nicht für Anwendungen oder Websites verwendet werden, da dieser Code unter Umständen nicht die sicherste Codierungstechnik darstellt. Microsoft übernimmt keine Haftung für beiläufig entstandene Schäden oder Folgeschäden, falls der Beispielcode nicht bestimmungsgemäß verwendet wird.

So rufen Sie Beispiele und Anweisungen für ihre Installation ab

  • Klicken Sie in Visual Studio im Menü Hilfe auf Beispiele.

    Weitere Informationen finden Sie unter Suchen von Beispieldateien.

  • Die neueste Version und vollständige Liste mit Beispielen ist online unter Visual Studio 2008 Samples verfügbar.

  • Sie können auch Beispiele auf der Festplatte des Computers suchen. Standardmäßig werden Beispiele und eine Infodatei in einen Ordner unter \Programme\Visual Studio 9.0\Samples\ kopiert. Für Express Editions von Visual Studio sind alle Beispiele online verfügbar.

Erstellen und Ausführen des Beispiels

So erstellen Sie das PROPDLG-Beispiel und führen es aus

  1. Öffnen Sie die Projektmappe propdlg.sln.

  2. Klicken Sie im Menü Erstellen auf Erstellen.

  3. Klicken Sie im Menü Debuggen auf Starten ohne Debuggen.

Klicken Sie beim Ausführen des Beispiels auf eine beliebige Stelle in der Ansicht, um eine neue Form hinzuzufügen. Standardmäßig ist diese Form ein Rechteck mit fester Größe. Klicken Sie auf beliebige andere Stellen, um weitere Formen hinzuzufügen. Wenn Sie eine bestimmte Form markieren möchten, brauchen Sie einfach nur darauf zu klicken. Im Menü Object stehen drei Typen von Eigenschaftenblättern bereit, mit denen die Attribute des gegenwärtig markierten Objekts aktualisiert werden können. In einer "echten" Anwendung würde üblicherweise nur einer dieser drei Typen von Eigenschaftenblättern zur Verfügung stehen:

  • Simple Property Sheet
    Ein Popupdialogfeld mit den Registerkarten Style und Color. Klicken Sie auf OK, um dem aktuell markierten Objekt die entsprechenden Eigenschaften zuzuweisen und das Dialogfeld zu schließen. Klicken Sie auf Abbrechen, um das Dialogfeld zu schließen, ohne die Eigenschaften zu übernehmen. Die Schaltflächen Jetzt übernehmen und Hilfe sind in diesen Abbildungen immer deaktiviert.

  • Property Sheet with Preview
    Auch hier handelt es sich um ein Popupdialogfeld mit zwei Registerkarten. Dieses Dialogfeld verfügt zusätzlich über ein untergeordnetes Vorschaufenster. In diesem Vorschaufenster können Sie sehen, wie das Objekt mit den aktuell im Eigenschaftenblatt gewählten Werten aussehen würde. Dadurch wird dargestellt, wie das Layout eines Eigenschaftenblatts angepasst werden kann. Darüber hinaus ist in diesem Beispiel die Schaltfläche Jetzt übernehmen implementiert. Diese Schaltfläche ist immer dann aktiviert, wenn Sie eine Eigenschaft ändern.

  • Miniframe Property Sheet
    Hierbei handelt es sich um ein nicht modales Eigenschaftenblattdialogfeld innerhalb eines Minirahmenfensters. Die Eigenschaften in diesem nicht modalen Dialogfeld beziehen sich immer auf das gegenwärtig markierte Objekt. Änderungen, die Sie an diesen Werten vornehmen, werden unmittelbar auf das aktuell markierte Objekt übertragen.

Schlüsselwörter

Dieses Beispiel demonstriert die Verwendung der folgenden Schlüsselwörter:

AfxGetMainWnd; CCmdUI::Enable; CDC::GetClipBox; CDialog::DoModal; CDocument::OnNewDocument; CDocument::SetModifiedFlag; CDocument::UpdateAllViews; CFrameWnd::Create; CFrameWnd::GetActiveFrame; CFrameWnd::GetActiveView; CFrameWnd::LoadFrame; CMDIFrameWnd::MDIGetActive; CObject::AssertValid; CObject::Dump; CObject::Serialize; CPen::CreatePen; CRect::Height; CRect::IntersectRect; CRect::IsRectNull; CRect::PtInRect; CRect::Width; CStatusBar::Create; CStatusBar::SetIndicators; CString::LoadString; CToolBar::Create; CToolBar::LoadBitmap; CToolBar::SetButtons; CView::DoPreparePrinting; CView::GetDocument; CView::OnBeginPrinting; CView::OnDraw; CView::OnEndPrinting; CView::OnPreparePrinting; CWinApp::AddDocTemplate; CWinApp::EnableShellOpen; CWinApp::InitInstance; CWinApp::LoadStdProfileSettings; CWinApp::RegisterShellFileTypes; CWnd::CenterWindow; CWnd::Create; CWnd::DoDataExchange; CWnd::FromHandle; CWnd::GetClientRect; CWnd::GetParent; CWnd::InvalidateRect; CWnd::IsWindowVisible; CWnd::OnCreate; CWnd::OnEraseBkgnd; CWnd::OnKeyDown; CWnd::OnLButtonDblClk; CWnd::OnLButtonDown; CWnd::OnPaint; CWnd::SendMessage; CWnd::ShowWindow; CWnd::UpdateWindow; DragAcceptFiles; Ellipse; FillRect; GetParent; GetWindowRect; RGB; Rectangle; RoundRect; SelectObject; SendMessage; SetFocus; SetWindowPos; UpdateWindow

Hinweis:

In diesem und einigen anderen Beispielen wurden die Änderungen an den Visual C++-Assistenten, -Bibliotheken und -Compilern noch nicht nachvollzogen. Sie demonstrieren aber dennoch, wie Sie die gewünschte Aufgabe durchführen können.

Siehe auch

Weitere Ressourcen

MFC-Beispiele