将超链接复制到剪贴板,使用不支持超链接的文本编辑器的替代文本

时间:2017-06-30 13:40:22

标签: c++ winapi mfc

是否可以在剪贴板上存储超链接,其中一些文本将粘贴到不支持超链接的文本编辑器上?记事本,例如。

我已经在资源管理器中找到了code that generates hyperlinks个文件。目前,如果我将超链接复制到剪贴板,则会在记事本中禁用“粘贴”选项,但我可以将我的超链接复制到Outlook或Word中。就我而言,我想在记事本中粘贴文件路径。

我认为如果没有文本编辑器方面的特定处理程序,这是不可能的。但如果这是可能的,我会感谢一些文章或样本的链接。

1 个答案:

答案 0 :(得分:1)

只需打开剪贴板,然后多次调用SetClipboardData,每个格式对应您要提供的格式。您可以同时将CF_HTMLCF_TEXT(按此顺序)放在剪贴板上。这是记录在案的行为:

Multiple Clipboard Formats

  

窗口可以在剪贴板上放置多个剪贴板对象,每个剪贴板对象用不同的剪贴板格式表示相同的信息。在剪贴板上放置信息时,窗口应提供尽可能多的格式的数据。要了解剪贴板上当前使用的格式数量,请调用CountClipboardFormats函数。

     

包含最多信息的剪贴板格式应首先放在剪贴板上,然后是较少描述性的格式。从剪贴板粘贴信息的窗口通常以其识别的第一格式检索剪贴板对象。由于剪贴板格式按照放置在剪贴板上的顺序进行枚举,因此第一种可识别的格式也是最具描述性的格式。

     

例如,假设用户从文字处理文档中复制样式文本。包含文档的窗口可能首先以注册格式(如RTF)将数据放在剪贴板上。随后,窗口会以较不描述的格式将数据放在剪贴板上,例如文本(CF_TEXT)。

     

当剪贴板的内容粘贴到另一个窗口时,该窗口以其识别的最具描述性的格式检索数据。如果窗口识别RTF,则相应的数据将粘贴到文档中。否则,文本数据将粘贴到文档中,格式信息将丢失。