系统在某些剪贴板格式之间隐含地转换数据:如果窗口以不在剪贴板上的格式请求数据,系统将可用的格式转换为所请求的格式。系统可以转换数据,如下表所示。
剪贴板格式 | 转换格式 | 平台支持 |
CF_BITMAP | CF_DIB | Windows NT,Windows 95 |
CF_DIB | CF_BITMAP | Windows NT,Windows 95 |
CF_DIB | CF_PALETTE | Windows NT,Windows 95 |
CF_ENHMETAFILE | CF_METAFILEPICT | Windows NT,Windows 95 |
CF_METAFILEPICT | CF_ENHMETAFILE | Windows NT,Windows 95 |
CF_OEMTEXT | CF_TEXT | Windows NT,Windows 95 |
CF_OEMTEXT | CF_UNICODETEXT | Windows NT |
CF_TEXT | CF_OEMTEXT | Windows NT,Windows 95 |
CF_TEXT | CF_UNICODETEXT | Windows NT |
CF_UNICODETEXT | CF_OEMTEXT | Windows NT |
CF_UNICODETEXT | CF_TEXT | Windows NT |
如果系统提供多种格式之间的转换,则不需要在剪贴板上放置多种格式。复制位图时,最好将CF_DIB格式放在剪贴板上。这是因为与设备相关的位图(CF_BITMAP)中的颜色相对于系统调色板,可能会在粘贴位图之前更改。如果只有CF_DIB格式在剪贴板上,并且窗口请求CF_BITMAP格式,那么系统会使用当前的调色板来呈现与设备相关的位图(DIB)。
如果将CF_BITMAP格式放在剪贴板上(而不是CF_DIB),系统将在剪贴板关闭后立即呈现CF_DIB剪贴板格式。这确保使用正确的调色板来生成DIB。其他剪贴板格式之间的转换会根据需要进行。