共用方式為


剪貼簿:複製和貼上資料

本主題描述實作從 OLE 應用程式中剪貼簿複製和貼上所需的最低工作。 建議您先閱讀 資料物件和資料來源 (OLE) 主題,再繼續進行。

您必須先提供函式來處理 [編輯] 功能表上的 [複製]、[剪下] 和 [貼上] 選項,才能實作複製或貼上。

複製或剪下資料

將資料複製到剪貼簿

  1. 判斷要複製的資料是原生資料,還是內嵌或連結的專案。

    • 如果資料已內嵌或連結,請取得已選取物件的 COleClientItem 指標。

    • 如果資料是原生的,而且應用程式是伺服器,請建立衍生自 COleServerItem 包含所選資料的新物件。 否則,請為數據建立 COleDataSource 物件。

  2. 呼叫選取專案 CopyToClipboard 的成員函式。

  3. 如果使用者選擇剪下作業,而不是複製作業,請從您的應用程式中刪除選取的資料。

若要查看此序列的範例,請參閱 OnEditCut MFC OLE 範例程式 OCLIENT 和 HIERSVR 中的 和 OnEditCopy 函式。 請注意,這些範例會維護目前選取資料的指標,因此步驟 1 已經完成。

貼上資料

貼上資料比複製更為複雜,因為您必須選擇將資料貼入應用程式時要使用的格式。

從剪貼簿貼上資料

  1. 在您的檢視類別中,實 OnEditPaste 作 以處理使用者從 [編輯] 功能表選擇 [貼上] 選項。

  2. 在 函式中 OnEditPaste ,建立 COleDataObject 物件並呼叫其 AttachClipboard 成員函式,將此物件連結至剪貼簿上的資料。

  3. 呼叫 COleDataObject::IsDataAvailable 以檢查特定格式是否可用。

    或者,您可以使用 COleDataObject::BeginEnumFormats 來尋找其他格式,直到您找到最適合應用程式的格式。

  4. 執行格式的貼上。

如需運作方式的範例,請參閱 OnEditPaste MFC OLE 範例程式 OCLIENT HIERSVR 中定義之檢視類別中的成員函式實作。

提示

將貼上作業分成自己的函式的主要優點是,在拖放作業期間,在應用程式中卸載資料時,可以使用相同的貼上程式碼。 如同 OCLIENT 和 HIERSVR,您的 OnDrop 函式也可以呼叫 DoPasteItem ,重複使用撰寫以實作 Paste 作業的程式碼。

若要處理 [編輯] 功能表上的 [貼上特殊] 選項,請參閱 OLE 中的對話方塊主題

您想要深入瞭解什麼

另請參閱

剪貼簿:使用 OLE 剪貼簿機制