剪贴板

剪贴板是一组函数和消息,促使应用程序能够传输数据。 由于所有应用程序都可以访问剪贴板,因此可以在应用程序之间或在应用程序中轻松传输数据。

本概述不介绍如何复制和粘贴链接对象或嵌入对象。 有关这些主题的信息,请参阅组件对象模型 (COM) 文档。

本节内容

名称 描述
关于剪贴板
讨论剪贴板。
剪贴板格式
讨论剪贴板格式。 一个窗口可以在剪贴板上放置多个对象,每个对象都以不同的剪贴板格式表示相同的信息。 用户无需了解剪贴板上对象所用的剪贴板格式。
剪贴板操作
讨论剪贴板操作。 在剪切、复制或粘贴数据时,窗口应使用剪贴板。 窗口将数据置于剪贴板上以进行剪切和复制操作,并从剪贴板中检索数据以进行粘贴操作。
HTML 剪贴板格式
讨论 HTML 剪贴板格式。
使用剪贴板
剪贴板查看器窗口会显示剪贴板的当前内容,并且会在剪贴板内容更改时收到消息。
剪贴板引用
包含 API 引用。

剪贴板函数

名称 描述
AddClipboardFormatListener
将给定窗口置于系统维护的剪贴板格式侦听器列表中。
ChangeClipboardChain
从剪贴板查看器链中删除指定的窗口。
CloseClipboard
关闭剪贴板。
CountClipboardFormats
检索剪贴板上当前不同数据格式的数量。
EmptyClipboard
清空剪贴板并释放剪贴板中的数据句柄。 然后,该函数将剪贴板的所有权分配给当前打开剪贴板的窗口。
EnumClipboardFormats
枚举剪贴板上当前可用的数据格式。
剪贴板数据格式存储在有序列表中。 若要执行剪贴板数据格式的枚举,请对 EnumClipboardFormats 函数进行一系列调用。 对于每个调用,format 参数都指定可用的剪贴板格式,并且该函数将返回下一个可用的剪贴板格式。
GetClipboardData
从采用指定格式的剪贴板中检索数据。 之前必须已打开剪贴板。
GetClipboardFormatName
从剪贴板中检索指定注册格式的名称。 该函数会将名称复制到指定的缓冲区。
GetClipboardOwner
检索剪贴板的当前所有者的窗口句柄。
GetClipboardSequenceNumber
检索当前窗口工作站的剪贴板序列号。
GetClipboardViewer
检索剪贴板查看器链中第一个窗口的句柄。
GetOpenClipboardWindow
检索当前打开剪贴板的窗口的句柄。
GetPriorityClipboardFormat
检索指定列表中的第一个可用剪贴板格式。
GetUpdatedClipboardFormats
检索当前支持的剪贴板格式。
IsClipboardFormatAvailable
确定剪贴板是否包含指定格式的数据。
OpenClipboard
打开剪贴板进行检查,并阻止其他应用程序修改剪贴板内容。
RegisterClipboardFormat
注册新的剪贴板格式。 然后,可以将此格式用作有效的剪贴板格式。
RemoveClipboardFormatListener
从系统维护的剪贴板格式侦听器列表中删除给定窗口。
SetClipboardData
以指定的剪贴板格式将数据置于剪贴板上。 窗口必须是当前剪贴板所有者,并且应用程序必须已调用 OpenClipboard 函数。 (在响应 WM_RENDERFORMAT 消息时,剪贴板所有者在调用 SetClipboardData 之前不得调用 OpenClipboard
SetClipboardViewer
将指定的窗口添加到剪贴板查看器链中。 每当剪贴板内容发生更改时,剪贴板查看器窗口都会收到 WM_DRAWCLIPBOARD 消息。

剪贴板消息

名称 描述
WM_CLEAR
发送到编辑控件或组合框,以从编辑控件中删除(清除)当前所选内容(如果有)。
WM_COPY
发送到编辑控件或组合框,以 CF_TEXT 格式将当前所选内容复制到剪贴板。
WM_CUT
发送到编辑控件或组合框,以删除(剪切)编辑控件中的当前所选内容(如果有),并将删除的文本以 CF_TEXT 格式复制到剪贴板。
WM_PASTE
发送到编辑控件或组合框,以将剪贴板的当前内容复制到当前插入点位置的编辑控件。 仅当剪贴板包含 CF_TEXT 格式的数据时,才会插入数据。

剪贴板通知

名称 描述
WM_ASKCBFORMATNAME
通过剪贴板查看器窗口发送到剪贴板所有者,以请求 CF_OWNERDISPLAY 剪贴板格式的名称。
WM_CHANGECBCHAIN
从链中删除窗口时,发送到剪贴板查看器链中的第一个窗口。
WM_CLIPBOARDUPDATE
在剪贴板内容已更改时发送。
WM_DESTROYCLIPBOARD
调用 EmptyClipboard 函数会清空剪贴板时发送给剪贴板所有者。
WM_DRAWCLIPBOARD
当剪贴板内容发生更改时发送给剪贴板查看器链中的第一个窗口。 这使剪贴板查看器窗口能够显示剪贴板的新内容。
WM_HSCROLLCLIPBOARD
通过剪贴板查看器窗口发送到剪贴板所有者。 当剪贴板包含 CF_OWNERDISPLAY 格式的数据,并且剪贴板查看器的水平滚动条中发生事件时,会出现这种情况。 所有者应滚动剪贴板图像并更新滚动条值。
WM_PAINTCLIPBOARD
当剪贴板包含 CF_OWNERDISPLAY 格式的数据,并且剪贴板查看器的客户端区域需要重新绘制时,由剪贴板查看器窗口发送给剪贴板所有者。
WM_RENDERALLFORMATS
如果剪贴板所有者延迟呈现一个或多个剪贴板格式,则将其发送给剪贴板所有者,然后再将其销毁。 若要使剪贴板的内容可供其他应用程序使用,剪贴板所有者必须以能够生成的所有格式呈现数据,并通过调用 SetClipboardData 函数将数据放置在剪贴板上。
WM_RENDERFORMAT
如果剪贴板所有者延迟呈现特定剪贴板格式,并且应用程序已请求该格式的数据,则发送给剪贴板所有者。 剪贴板所有者必须以指定的格式呈现数据,并通过调用 SetClipboardData 函数将其置于剪贴板上。
WM_SIZECLIPBOARD
当剪贴板包含 CF_OWNERDISPLAY 格式的数据,并且剪贴板查看器的客户端已更改大小时,由剪贴板查看器窗口发送给剪贴板所有者。
WM_VSCROLLCLIPBOARD
当剪贴板包含 CF_OWNERDISPLAY 格式的数据,并且剪贴板查看器的垂直滚动条中发生事件时,由剪贴板查看器窗口发送至剪贴板所有者。 所有者应滚动剪贴板图像并更新滚动条值。

结构

名称 描述
METAFILEPICT
定义用于通过剪贴板交换元文件数据的图元文件图片格式。