Freigeben über


HIERSVR-Beispiel: Veranschaulicht eine Serveranwendung mit OLE Drag & Drop

Das HIERSVR-Beispiel ist ein Beispiel für eine Serveranwendung für visuelle Bearbeitung, dass unterstützt Objekte sowie in-Place-bearbeitete Objekte verknüpft. Darüber hinaus als "voll"Server, diese Anwendung auch direkt öffnen und Speichern von Dateien. Das HIERSVR-Objekt ist ein auf mehreren Ebenen Hierarchiediagramm Text durch ein Rechteck oder andere Formen umgeben, wobei jeder Knoten in der Hierarchie besteht. Zusätzlich zur Serverfunktionalität veranschaulicht, veranschaulicht HIERSVR auch OLE-Drag und Drop sowie Kopieren in die Zwischenablage.

SicherheitshinweisSicherheitshinweis

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 das HIERSVR-Beispiel führen

  1. Öffnen Sie die Projektmappe hiersvr.sln.

  2. erstellen Sie Menü, klicken Sie auf erstellen.

  3. Führen Sie HIERSRV als eigenständige Anwendung, damit er sich selbst mit dem System registrieren kann.

HIERSRV-Diagramme

Der Typ des Dokuments oder Objekt HIERSVR Bearbeitungen und zeigt ist ein Hierarchiediagramm einfache Vererbung. Jeder Knoten im Diagramm außer dem Stammknoten hat nur einen übergeordneten Knoten. Jede übergeordnete kann mehrere untergeordnete Elemente verfügen. Organigramm eines Unternehmens ist ein Beispiel für ein Hierarchiediagramm. Daher ist die Liste der MFC-Klassen, da Sie keine C++ Mehrfachvererbung verwenden. Mfcclass.hie ist als Beispiel HIERSVR Dokument enthalten.

Jeder Knoten in der Hierarchie verfügt über einen minimalen Satz von Attributen.

  • Beschreibung – Text bestehend aus bis zu 30 Zeichen.

  • Form – Format des Rechtecks, das Text-Rechteck, abgerundetes Rechteck oder ovales Rechteck umgibt.

  • Element Key-Link (optional) – Name zum Verweisen auf ein verknüpftes Element verwendet. Wenn nicht angegeben, wird die Schlüsselverknüpfung Element auf die Beschreibungszeichenfolge. Dieser Name ist sichtbar, wenn Sie die Verknüpfung mit den Befehl Verknüpfungen bearbeiten in der Clientanwendung anzeigen.

Erstellen eines HIERSVR-Diagramms

Ein neues HIERSVR Diagramm beginnt, als ein einzelner Knoten mit dem Text "Stammknoten". Zum Hinzufügen eines Knotens zunächst Wählen Sie seinen übergeordneten Knoten durch Klicken aus. Klicken Sie auf Knoten hinzufügen Menü bearbeiten. Klicken Sie im Dialogfeld Knoten hinzufügen geben Sie die drei oben beschriebenen Attribute an. Um die Attribute eines Knotens ändern möchten, wählen Sie es mit einem Mausklick und klicken Sie dann auf Knoten ändern. Um einen Knoten zu verschieben, klicken Sie auf, und ziehen Sie an die neue Position.

HIERSVR wird Hierarchieinformationen aus eine folgendermaßen formatierte Textdatei zu importieren: Der Text in jeder Zeile (getrennt von einem Zeilenvorschub) ist der Knoten Beschreibung. Die Anzahl der Registerkarte Zeichen vor den Text bestimmt die Ebene des Knotens in der Hierarchie. Im Beispielverzeichnis von HIERSVR ist Mfcclass.txt der Import-Textdatei für Mfcclass.hie, die systemeigene HIERSVR-Datei.

Um ein Hierarchiediagramm mit einem Clientdokument verknüpfen, müssen Sie die Datei zunächst in HIERSVR speichern. Wählen Sie den zu kopierenden von Kopie bearbeiten Knoten. Damit wird die Verknüpfung in die Zwischenablage übertragen. Wird auch der Text des ausgewählten Knotens im CF_TEXT-Format in die Zwischenablage kopiert, und die gesamte Knotenhierarchie wird in ein HIERSVR-Zwischenablageformat kopiert werden. Speichern des Dokuments ist erforderlich, da das Link-Format ein Dokumentname erforderlich ist. Finally, in the client application, click EditPaste Link (or click Paste Link on the Edit Paste Special menu). Die Verknüpfung wird im Clientdokument als Knoten angezeigt werden, die Sie vor dem Klicken auf Kopie bearbeiten ausgewählt. Das Rechteck wird ebenfalls angezeigt.

Ein Hierarchiediagramm in ein Clientdokument einbetten möchten, können Sie verwenden eine Zwischenablage Verfahren wie oben für Verknüpfen von Objekten oder klicken Sie auf in der Clientanwendung neues Objekt einfügen-. Wenn Sie die Zwischenablage-Prozedur, verwenden Sie anstelle von Bearbeiten > Verknüpfung einfügenbearbeiten einfügen in der Clientanwendung. Nur die Subhierarchy, beginnend mit dem ausgewählten Knoten werden in das Clientdokument eingebettet.

Ob Sie verknüpfen oder im Diagramm einbetten, werden nur der oberste ausgewählte Knoten im Client-Anwendungsfenster angezeigt. Um den Rest des Diagramms anzuzeigen, müssen Sie HIERSVR durch Doppelklicken auf das Element aus der Clientanwendung zu starten.

Visuelle Bearbeitung Server

HIERSVR veranschaulicht die Ableitungen Klasse zum Implementieren einer voll funktionsfähigen visuelle Bearbeitung Serveranwendung und veranschaulicht einige der am häufigsten verwendeten Client-Anwendung Benutzeroberflächen, die zusätzlichen Code erfordern.

Die drei Framework Klassen implementieren eine Serveranwendung für visuelle Bearbeitung sind im folgenden dargestellt.

  • Ein COleTemplateServer -Objekt, das als Member Variable m_server in Anwendungsklasse von HIERSVR des gespeichert.

  • Die HIERSVR CServerDoc -Klasse, abgeleitet von COleServerDoc.

  • Die HIERSVR CServerItem -Klasse, abgeleitet von COleServerItem.

  • Die HIERSVR CInPlaceFrame Klasse, abgeleitet von COleIPFrameWnd, ursprünglich vom Anwendungs-Assistenten erstellt.

Schlüsselwörter

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

AfxGetMainWnd; AfxMessageBox; AfxOleInit; AfxThrowMemoryException; AfxThrowNotSupportedException; AfxThrowResourceException; CArchive::Close; CCmdTarget::BeginWaitCursor; CCmdTarget::EndWaitCursor; CCmdUI::Enable; CCmdUI::SetCheck; CControlBar::EnableDocking; CControlBar::GetBarStyle; CControlBar::SetBarStyle; CDC::GetDeviceCaps; CDC::LPtoDP; CDC::LPtoHIMETRIC; CDC::SelectObject; CDC::SetMapMode; CDC::SetViewportExt; CDC::SetWindowExt; CDialog::DoModal; CDialog::OnInitDialog; CDocTemplate::SetServerInfo; CDocument::DeleteContents; CDocument::GetFirstViewPosition; CDocument::GetNextView; CDocument::OnNewDocument; CDocument::SetModifiedFlag; CDocument::UpdateAllViews; CFile::Open; CFileDialog::DoModal; CFileDialog::GetPathName; CFontDialog::DoModal; CFontDialog::GetColor; CFrameWnd::Create; CFrameWnd::DockControlBar; CFrameWnd::EnableDocking; CFrameWnd::LoadFrame; CMenu::GetSubMenu; CMenu::LoadMenu; CMenu::TrackPopupMenu; CObList::AddHead; CObList::AddTail; CObList::GetCount; CObList::GetHeadPosition; CObList::GetNext; CObList::GetTail; CObList::RemoveAll; CObList::RemoveAt; CObject::AssertValid; CObject::Dump; CObject::Serialize; COleDataObject::AttachClipboard; COleDataObject::GetFileData; COleDataObject::IsDataAvailable; COleIPFrameWnd::OnCreateControlBars; COleLinkingDoc::OnGetLinkedItem; COleServerDoc::GetItemPosition; COleServerDoc::IsInPlaceActive; COleServerDoc::OnDeactivateUI; COleServerDoc::OnGetEmbeddedItem; COleServerDoc::OnSetItemRects; COleServerDoc::RequestPositionChange; COleServerDoc::UpdateAllItems; COleServerItem::CopyToClipboard; COleServerItem::DoDragDrop; COleServerItem::GetClipboardData; COleServerItem::GetDataSource; COleServerItem::GetDocument; COleServerItem::GetItemName; COleServerItem::IsLinkedItem; COleServerItem::OnDraw; COleServerItem::OnGetClipboardData; COleServerItem::OnGetExtent; COleServerItem::OnOpen; COleServerItem::OnRenderFileData; COleServerItem::SetItemName; COleTemplateServer::ConnectTemplate; COleTemplateServer::UpdateRegistry; CPen::CreatePen; CRect::BottomRight; CRect::Height; CRect::InflateRect; CRect::IntersectRect; CRect::OffsetRect; CRect::PtInRect; CRect::Size; CRect::TopLeft; CScrollView::GetDeviceScrollPosition; CScrollView::ScrollToPosition; CScrollView::SetScrollSizes; CString::Empty; CString::GetLength; CString::IsEmpty; CToolBar::Create; CToolBar::LoadBitmap; CToolBar::SetButtons; CView::GetDocument; CView::OnDragEnter; CView::OnDragLeave; CView::OnDragOver; CView::OnDraw; CView::OnDrop; CView::OnInitialUpdate; CView::OnPrepareDC; CView::OnUpdate; CWinApp::AddDocTemplate; CWinApp::EnableShellOpen; CWinApp::ExitInstance; CWinApp::InitInstance; CWinApp::LoadStdProfileSettings; CWinApp::RegisterShellFileTypes; CWnd::ClientToScreen; CWnd::DoDataExchange; CWnd::GetClientRect; CWnd::GetParentFrame; CWnd::Invalidate; CWnd::InvalidateRect; CWnd::OnCreate; CWnd::OnKeyDown; CWnd::OnLButtonDblClk; CWnd::OnLButtonDown; CWnd::OnRButtonDown; CWnd::OnSize; CWnd::SetOwner; CWnd::ShowWindow; CWnd::UpdateWindow; CreateFontIndirect; DragAcceptFiles; EnableWindow; ExtTextOut; GetDeviceCaps; GetSysColor; GetTextExtent; GetWindowTextLength; IsChild; LPtoDP; LineTo; LoadBitmap; MoveTo; MulDiv; RGB; RectVisible; Rectangle; RegisterClipboardFormat; RoundRect; SelectObject; SetTextColor; SetViewportExt; SetWindowExt; SetWindowOrg; _alloca; afxMemDF; lstrcpy; memset; min; strnlen; wcstombs

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.

Siehe auch

Weitere Ressourcen

MFC-Beispiele