共用方式為


OCLIENT 範例:說明視覺化編輯容器應用程式

更新:2007 年 11 月

OCLIENT 範例是視覺化編輯容器應用程式的範例。基本上,它是 CONTAINER 範例的延伸版本 (雖然它並不完全是衍生自 CONTAINER)。

安全性注意事項:

這個程式碼範例僅供概念說明之用,同時因為範例中的程式碼撰寫並沒有周全的顧及所有安全性問題,所以本範例不適用於實際執行的應用程式或網站中。如果使用者擅自將範例程式碼用於其他意圖而導致連帶事件或重大損害時,Microsoft 將不承擔任何責任。

若要取得範例和指示以便進行安裝:

  • 按一下 Visual Studio [說明] 功能表上的 [範例]。

    如需詳細資訊,請參閱尋找範例檔案

  • 最新版的完整範例清單可從 Visual Studio 2008 範例網頁 (英文) 取得。

  • 您也可以將範例置於電腦硬碟中。根據預設,範例和讀我檔案都會複製到 \Program Files\Visual Studio 9.0\Samples\ 下的資料夾中。對於所有的 Visual Studio Express 版,所有範例都可在線上找到。

建置和執行範例

若要建置並執行 OCLIENT 範例

  1. 開啟 OCLIENT.sln 方案。

  2. 在 [建置] 功能表上,按一下 [建置]。

  3. 開啟並執行 OCLIENT 應用程式。

OCLIENT 將說明這些功能:

  • 拖放到其他應用程式,或從其他應用程式拖放回來

  • 在相同應用程式視窗中以控制拖曳來複製物件

  • 在拖放作業時自動捲動視窗

  • 原生格式物件的 Edit Paste

  • Edit Paste Link

OCLIENT 就像 CONTAINER,是一個簡易的物件繪圖程式。它所繪製的唯一一種物件類型就是連結或內嵌的 OLE 項目。

若要在 OCLIENT 繪圖中加入新物件

  1. 按一下 [編輯] 功能表的 [插入新物件]。

    [插入新物件] 對話方塊隨即出現。

  2. 選取要加入的 OLE 項目型別。

    OCLIENT 視窗中會出現一個新物件,而 OCLIENT 的功能表和工具列也會由伺服器應用程式所提供的快顯功能表和工具列按鈕完成更新。

-或-

  1. 在執行 Automation 伺服程式時,將 OLE 項目複製到剪貼簿中。

  2. 在 OCLIENT 的 [編輯] 功能表上,按一下 [貼上] 來嵌入這個 OLE 項目,或是按一下 [貼上連結] 來連結 OLE 項目。

新加入的 OLE 項目會永遠出現在 OCLIENT 繪圖的左上角。新的 OLE 項目可能會覆蓋舊項目的部分或所有功能。您可以用滑鼠一次選取一個 OLE 項目。選取的連結項目會以點狀矩形標示,而內嵌項目則會以實心矩形標示。您可以利用拖曳來移動 OLE 項目,而且可以利用縮放控點來調整選取的 OLE 項目的大小。

若要刪除 OLE 項目,請按一下滑鼠來選取要刪除的項目,然後按 DELETE 鍵或是使用 [編輯] 功能表上的 [刪除] 命令。

若要編輯 OLE 項目的內容,請按兩下該項目或是在項目上按一下滑鼠以選取該項目,接著在 [編輯] 功能表上按一下 [編輯 <type> Object]。若要完成就地編輯項目的編輯作業,請在 OCLIENT 視窗中該項目的矩形外任何位置上按一下。若要完成已經在伺服器應用程式中完全開啟之項目編輯作業,請使用伺服器的 [更新檔案] 命令。

關鍵字

本範例會使用下列關鍵字:

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

注意事項:

部分範例 (包括本範例) 尚未經過改寫,無法反映出目前在 Visual C++ 精靈、程式庫以及編譯器方面的變更,不過還是可以示範如何完成您要進行的工作。

請參閱

其他資源

MFC 範例