OCLIENT-Beispiel: Demonstriert eine Containeranwendung für die visuelle Bearbeitung

Aktualisiert: November 2007

Das OCLIENT-Beispiel ist ein Beispiel einer Containeranwendung für die visuelle Bearbeitung. Im Wesentlichen ist es eine erweiterte Version des CONTAINER-Beispiels, obwohl es sich genau genommen nicht um eine Ableitung von CONTAINER handelt.

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 OCLIENT-Beispiel und führen es aus

  1. Öffnen Sie die Projektmappe OCLIENT.sln.

  2. Klicken Sie im Menü Erstellen auf Erstellen.

  3. Öffnen Sie die OCLIENT-Anwendung, und führen Sie sie aus.

OCLIENT veranschaulicht die folgenden Features:

  • Drag & Drop in andere Anwendungen und aus anderen Anwendungen.

  • Klonen (Duplizierung) von Objekten durch Ziehen und gleichzeitiges Drücken der STRG-TASTE innerhalb desselben Anwendungsfensters.

  • Automatisches Durchführen eines Bildlaufs in einem Fenster während eines Drag & Drop-Vorgangs.

  • Bearbeiten > Einfügen eines Objekts im systemeigenen Format.

  • Bearbeiten > Verknüpfung einfügen.

OCLIENT ist ebenso wie CONTAINER ein einfaches Objektzeichenprogramm. Der einzige Objekttyp, den man mit diesem Programm zeichnen kann, ist ein verknüpftes oder eingebettetes OLE-Element.

So fügen Sie der OCLIENT-Zeichnung ein neues Objekt hinzu

  1. Klicken Sie im Menü Bearbeiten auf Neues Objekt einfügen.

    Das Dialogfeld Neues Objekt einfügen wird angezeigt.

  2. Wählen Sie den Typ des OLE-Elements aus, den Sie hinzufügen möchten.

    Im OCLIENT-Fenster wird ein neues Objekt angezeigt. Das Menü und die Symbolleiste von OCLIENT werden mit Popupmenüs und Symbolleisten-Schaltflächen der Serveranwendung aktualisiert.

- oder -

  1. Kopieren Sie während des Ausführens eines Automatisierungsservers ein OLE-Element in die Zwischenablage.

  2. Klicken Sie im OCLIENT-Menü Bearbeiten auf Einfügen, um das OLE-Element einzubetten, oder klicken Sie auf Verknüpfung einfügen, um das OLE-Element zu verknüpfen.

Das neu hinzugefügte OLE-Element wird immer in der linken oberen Ecke der OCLIENT-Zeichnung positioniert. Das neue OLE-Element verdeckt möglicherweise ein älteres Element teilweise oder ganz. Sie können nur jeweils ein OLE-Element mit der Maus markieren. Ein ausgewähltes verknüpftes Element ist durch ein gepunktetes Rechteck gekennzeichnet, ein eingebettetes Element durch ein durchgezogenes Rechteck. Sie können ein OLE-Element durch Ziehen verschieben; die Größe eines ausgewählten OLE-Elements können Sie mithilfe der Ziehpunkte zur Größenänderung ändern.

Wenn Sie ein OLE-Element löschen möchten, wählen Sie es mit einem Mausklick aus und drücken dann die ENTF-TASTE oder verwenden den Befehl Clear im Menü Bearbeiten.

Wenn Sie den Inhalt eines OLE-Elements bearbeiten möchten, doppelklicken Sie darauf oder wählen es mit der Maus aus und klicken dann im Menü Bearbeiten auf Bearbeiten > <Typ>-Objekt. Wenn Sie die Bearbeitung eines direkt bearbeiteten Elements beenden möchten, klicken Sie auf einen beliebigen Punkt im OCLIENT-Fenster außerhalb des Rechtecks des Elements. Wenn Sie die Bearbeitung eines Elements beenden möchten, das in der Serveranwendung vollständig geöffnet wurde, verwenden Sie dazu den Serverbefehl zur Dateiaktualisierung.

Schlüsselwörter

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

AfxGetMainWnd; AfxMessageBox; AfxOleInit; AfxThrowArchiveException; AfxThrowFileException; AfxThrowMemoryException; CArchive::Close; CArchive::IsStoring; CCmdTarget::BeginWaitCursor; CCmdTarget::EndWaitCursor; CCmdUI::Enable; CCmdUI::SetCheck; CControlBar::EnableDocking; CDC::DPtoLP; CDC::DrawFocusRect; CDC::GetDeviceCaps; CDC::HIMETRICtoDP; CDC::LPtoDP; CDC::RealizePalette; CDC::SelectPalette; CDocTemplate::SetContainerInfo; CDocument::SetModifiedFlag; CDocument::UpdateAllViews; CFrameWnd::DockControlBar; CFrameWnd::EnableDocking; CFrameWnd::LoadFrame; CFrameWnd::OnCreateClient; CGdiObject::UnrealizeObject; CMDIChildWnd::Create; CMenu::GetSubMenu; CMenu::LoadMenu; CMenu::TrackPopupMenu; CObject::AssertValid; CObject::Dump; CObject::IsKindOf; CObject::Serialize; COleClientItem::Close; COleClientItem::CreateCloneFrom; COleClientItem::Deactivate; COleClientItem::Delete; COleClientItem::DoDragDrop; COleClientItem::DoVerb; COleClientItem::Draw; COleClientItem::GetActiveView; COleClientItem::GetClipboardData; COleClientItem::GetDocument; COleClientItem::GetDrawAspect; COleClientItem::GetInPlaceWindow; COleClientItem::GetItemState; COleClientItem::GetType; COleClientItem::IsInPlaceActive; COleClientItem::OnActivate; COleClientItem::OnChange; COleClientItem::OnChangeItemPosition; COleClientItem::OnDeactivateUI; COleClientItem::OnGetClipboardData; COleClientItem::OnGetItemPosition; COleClientItem::SetDrawAspect; COleClientItem::SetItemRects; COleClientItem::UpdateLink; COleDataObject::Attach; COleDataObject::AttachClipboard; COleDataObject::IsDataAvailable; COleDataSource::CacheGlobalData; COleDocument::EnableCompoundFile; COleDocument::GetNextItem; COleDocument::GetStartPosition; COleDocument::HasBlankItems; COleDocument::OnShowViews; COleInsertDialog::CreateItem; COleInsertDialog::DoModal; COleInsertDialog::GetSelectionType; COlePasteSpecialDialog::AddFormat; COlePasteSpecialDialog::AddStandardFormats; COlePasteSpecialDialog::CreateItem; COlePasteSpecialDialog::DoModal; COlePasteSpecialDialog::GetSelectionType; COleTemplateServer::ConnectTemplate; COleTemplateServer::UpdateRegistry; COleUpdateDialog::DoModal; CPalette::CreateHalftonePalette; CRect::InflateRect; CRect::IntersectRect; CRect::IsRectEmpty; CRect::OffsetRect; CRect::Size; CRect::TopLeft; CRectTracker::Draw; CRectTracker::HitTest; CRectTracker::SetCursor; CRectTracker::Track; CScrollView::GetDeviceScrollPosition; CScrollView::SetScrollSizes; CStatusBar::Create; CStatusBar::SetIndicators; CToolBar::Create; CToolBar::LoadBitmap; CToolBar::SetButtons; CView::DoPreparePrinting; CView::GetDocument; CView::IsSelected; CView::OnDragEnter; CView::OnDragLeave; CView::OnDragOver; CView::OnDraw; CView::OnDrop; CView::OnInitialUpdate; CView::OnPrepareDC; CView::OnPreparePrinting; CView::OnScrollBy; CView::OnUpdate; CWinApp::AddDocTemplate; CWinApp::EnableShellOpen; CWinApp::InitInstance; CWinApp::LoadStdProfileSettings; CWinApp::RegisterShellFileTypes; CWinApp::RunEmbedded; CWnd::ClientToScreen; CWnd::GetClientRect; CWnd::GetDC; CWnd::GetParentFrame; CWnd::InvalidateRect; CWnd::OnChar; CWnd::OnCreate; CWnd::OnDestroy; CWnd::OnLButtonDblClk; CWnd::OnLButtonDown; CWnd::OnPaletteChanged; CWnd::OnQueryNewPalette; CWnd::OnRButtonDown; CWnd::OnSetCursor; CWnd::OnSetFocus; CWnd::OnSize; CWnd::ReleaseDC; CWnd::SetFocus; CWnd::ShowWindow; CWnd::UpdateWindow; CreateHatchBrush; DeleteItem; DragAcceptFiles; FORMATETC; FillRect; GetDeviceCaps; GetKeyState; GetSysColor; GlobalFree; GlobalLock; GlobalUnlock; LPtoDP; MessageBeep; MulDiv; RGB; RectVisible; RegisterClipboardFormat; ReleaseStgMedium; STGMEDIUM; SelectPalette; SetBkColor; SetBrushOrg; SetMapMode; SetRect; SetTextColor; SetViewportExt; SetWindowExt; abs; afxMemDF; max; memset; min

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