Как разместить несколько форматов в буфере обмена? - PullRequest
6 голосов
/ 21 апреля 2010

Например, что сделал Wordpad, когда я нажимал "Ctrl + C"?Он помещает много разных форматов в буфер обмена.Таким образом, Блокнот может получать текст без какого-либо цвета или шрифта и т. Д., И вы все равно можете сохранить исходный формат при вставке в другое окно Wordpad.

В MSDN сказано, что я должен вызывать SetClipboardData несколько раз.Но это совсем не работает.

Ответы [ 2 ]

10 голосов
/ 21 апреля 2010

Вы можете использовать Delphi's TClipboard.SetAsHandle, чтобы поместить данные в буфер обмена в любом количестве форматов. Сначала откройте буфер обмена, иначе каждый вызов SetAsHandle будет сбивать все, что там уже было, даже в других форматах.

Clipboard.Open;
Clipboard.SetAsHandle(cf_Text, x);
Clipboard.SetAsHandle(cf_Bitmap, y);
Clipboard.Close;
3 голосов
/ 21 апреля 2010

Все современные программы используют OleSetClipboard для публикации форматов буфера обмена и данных. Начните читать здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...