如何保存 CF_BITMAP 数据:绕过 GlobalSize 的方法
CF_BITMAP 是一个句柄类型,代表了一个位图对象。由于位图对象的大小是可变的,因此无法直接使用 GlobalSize 来获取位图对象的大小。
如果要保存 CF_BITMAP 数据,可以使用以下步骤:
- 使用 GetClipboardData 函数获取 CF_BITMAP 数据的句柄。
- 使用 GetObject 函数获取位图对象的信息,包括位图的宽度、高度和每行的字节数等。
- 使用 CreateCompatibleBitmap 函数创建一个新的位图对象,并设置其宽度、高度和位深等信息。
- 使用 CreateCompatibleDC 函数创建一个与目标设备兼容的内存设备上下文。
- 使用 SelectObject 函数将新创建的位图对象选入设备上下文中。
- 使用 BitBlt 函数将原始位图对象中的数据复制到新创建的位图对象中。
- 使用 DeleteDC 函数删除设备上下文。
- 使用 OpenClipboard 函数打开剪贴板。
- 使用 EmptyClipboard 函数清空剪贴板。
- 使用 SetClipboardData 函数将新创建的位图对象句柄设置为 CF_BITMAP 数据类型。
- 使用 CloseClipboard 函数关闭剪贴板。
通过以上步骤,可以将 CF_BITMAP 数据保存到剪贴板中。
原文地址: https://www.cveoy.top/t/topic/qgYN 著作权归作者所有。请勿转载和采集!