C++ 如何在剪贴板上放置多种格式?

C++ 如何在剪贴板上放置多种格式?,c++,windows,delphi,clipboard,C++,Windows,Delphi,Clipboard,例如,当我按下“Ctrl+C”时,写字板做了什么? 它将许多不同的格式放入剪贴板。因此,记事本可以得到没有任何颜色或字体的文本…等,你仍然可以保持原来的格式,当你粘贴在另一个写字板窗口 MSDN说我应该多次调用SetClipboardData。但是它根本不起作用。所有现代程序都使用OleSetClipboard来发布剪贴板格式和数据。开始。您可以使用Delphi将数据以您想要的格式放入剪贴板。首先打开剪贴板,否则每次调用SetAsHandle都会破坏已有的任何内容,即使是其他格式 Clipboa

例如,当我按下“Ctrl+C”时,写字板做了什么? 它将许多不同的格式放入剪贴板。因此,记事本可以得到没有任何颜色或字体的文本…等,你仍然可以保持原来的格式,当你粘贴在另一个写字板窗口


MSDN说我应该多次调用SetClipboardData。但是它根本不起作用。

所有现代程序都使用OleSetClipboard来发布剪贴板格式和数据。开始。

您可以使用Delphi将数据以您想要的格式放入剪贴板。首先打开剪贴板,否则每次调用
SetAsHandle
都会破坏已有的任何内容,即使是其他格式

Clipboard.Open;
Clipboard.SetAsHandle(cf_Text, x);
Clipboard.SetAsHandle(cf_Bitmap, y);
Clipboard.Close;

为什么不发布一些“根本不起作用”的代码?是的,并告诉我们失败的方式(程序崩溃,什么也没做,产生的输出与您预期的不同,等等)。谢谢Rob,我已经按照您的建议解决了这个问题。我使用的是TClipboard的SetBuffer方法,问题是每次调用SetBuffer时我都会打开/关闭剪贴板。可能是大多数,但肯定不是全部,因为我所研究的应用程序中没有一个使用过此接口。