剪贴板 是一组函数和消息,使应用程序能够传输数据。 由于所有应用程序都可以访问剪贴板,因此可以在应用程序之间或应用程序中轻松传输数据。
本概述不介绍如何复制和粘贴链接的对象或嵌入对象。 有关这些主题的信息,请参阅组件对象模型 (COM) 文档。
本部分内容
以下主题提供有关剪贴板、剪贴板格式、剪贴板作和剪贴板消息的信息。 API 引用包含可用于处理剪贴板的函数和消息。
名字 | 描述 |
---|---|
关于剪贴板 | 讨论剪贴板。 |
剪贴板格式 | 讨论剪贴板格式。 一个窗口可以在剪贴板上放置多个对象,每个对象都以不同的剪贴板格式表示相同的信息。 用户无需注意剪贴板上对象所用的剪贴板格式。 |
剪贴板作 | 讨论剪贴板作。 在剪切、复制或粘贴数据时,窗口应使用剪贴板。 窗口在剪贴板上放置用于剪切和复制作的数据,并从剪贴板中检索用于粘贴作的数据。 |
HTML 剪贴板格式 | 讨论 HTML 剪贴板格式。 |
使用剪贴板 | 剪贴板查看器窗口显示剪贴板的当前内容,并在剪贴板内容更改时接收消息。 |
剪贴板参考 | 包含 API 参考。 |
剪贴板函数
下表列出了可用于处理剪贴板的函数:
名字 | 描述 |
---|---|
AddClipboardFormatListener | 将给定窗口置于系统维护的剪贴板格式侦听器列表中。 |
ChangeClipboardChain | 从剪贴板查看器链中删除指定的窗口。 |
CloseClipboard | 关闭剪贴板。 |
CountClipboardFormats | 检索剪贴板上当前不同数据格式的数量。 |
EmptyClipboard | 清空剪贴板并释放剪贴板中的数据句柄。 然后,该函数将剪贴板的所有权分配给当前打开剪贴板的窗口。 |
EnumClipboardFormats | 枚举剪贴板上当前可用的数据格式。 剪贴板数据格式存储在有序列表中。 若要执行剪贴板数据格式的枚举,请对 EnumClipboardFormats 函数进行一系列调用。 对于每个调用,格式 参数指定可用的剪贴板格式,该函数返回下一个可用的剪贴板格式。 |
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 | 定义用于通过剪贴板交换图元文件数据的图元文件图片格式。 |