本文摘要說明實作容器的程式,並將您指向其他提供實作容器更詳細說明的文章。 它也會列出您可能想要實作的一些選擇性 OLE 功能,以及描述這些功能的文章。
準備您的 CWinApp 衍生類別
在成員函式
AfxOleInit中呼叫InitInstance,以初始化 OLE 函式庫。在
CDocTemplate::SetContainerInfo呼叫InitInstance,將指派嵌入項目就地啟動時所使用的選單和加速器資源。 如需本主題的詳細資訊,請參閱 啟用。
當您使用 MFC 應用程式精靈建立容器應用程式時,會自動為您提供這些功能。 請參閱 建立 MFC EXE 程式。
準備你的視圖類別
藉由為選取的專案維護一個指標,或若支援多選時則維護一個指標清單,以追蹤選取的專案。 您的
OnDraw函式必須繪製所有 OLE 項目。覆寫
IsSelected以檢查傳遞給它的項目是否已被選取。實作
OnInsertObject訊息處理程式以顯示 [ 插入物件 ] 對話框。實作
OnSetFocus訊息處理程式,將焦點從檢視切換到正在運行中的 OLE 嵌入項目。實作
OnSize訊息處理程式,通知 OLE 內嵌專案需要變更其矩形,以反映其包含檢視的大小變更。
由於這些功能的實作會因一個應用程式而異,因此應用程式精靈只會提供基本實作。 您可能必須自定義這些函式,讓您的應用程式正常運作。 如需此範例,請參閱 CONTAINER 範例。
處理內嵌和連結的項目
從 COleClientItem 衍生類別。 這個類別的物件代表已內嵌或連結至您的 OLE 文件的項目。
覆寫
OnChange、OnChangeItemPosition和OnGetItemPosition。 這些功能會處理調整大小、定位以及修改內嵌和連結項目。
應用程式精靈會為您衍生 類別,但您可能需要覆寫 OnChange 和上述程式中步驟 2 中所列的其他函式。 大部分應用程式都需要自定義基本架構實作,因為這些函式會以不同的方式實作,從一個應用程式到另一個應用程式。 如需此範例,請參閱 MFC 範例 DRAWCLI 和 CONTAINER。
您必須將一些項目新增至容器應用程式的功能表結構,以支援OLE。 如需這些的詳細資訊,請參閱 功能表和資源:容器新增。
您可能也想要在容器應用程式中支援下列一些功能:
在編輯嵌入項目時就地啟用。
如需詳細資訊,請參閱 啟用。
從伺服器應用程式拖放選取項目,以建立 OLE 項目。
如需詳細資訊,請參閱 OLE 拖放。
指向內嵌物件或組合式容器/伺服器應用程式的連結。
如需詳細資訊,請參閱 容器:進階功能。