news 2026/7/5 4:40:23

2601C++,复制超文本格式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2601C++,复制超文本格式

超文本剪切板格式

超文本有自己的剪切板格式(叫超文本格式(CF_HTML),可用来向其他应用助手(如Excel,Word或其他办公应用复制)提供数据.

CF_HTML是包含说明,环境和该环境中的片段完全基于文本的格式.生成要发送到剪切板的数据时,必须包含数据说明,以指示剪切板版本及环境和片段的偏移.
计算偏移可能是难点.但是,可如下简化此任务.

代码示例

//`CopyHtml()`,在`剪切板`上复制`超文本`.提供了`HTML/BODY`空白,所以只需像`CallHtml("<b>Thisisatest</b>"); `这样调用voidCopyHTML(char*html){//为`超文本`头创建一个`临时缓冲`...char*buf=newchar[400+strlen(html)];if(!buf)return;//取`剪切板``ID`以取`超文本`格式...staticintcfid=0;if(!cfid)cfid=RegisterClipboardFormat("HTML Format");//为`超文本`头创建一个模板串...strcpy(buf,"Version:0.9\r\n""StartHTML:00000000\r\n""EndHTML:00000000\r\n""StartFragment:00000000\r\n""EndFragment:00000000\r\n""<html><body>\r\n""<!-StartFragment -->\r\n");//附加`超文本`...strcat(buf,html);strcat(buf,"\r\n");//完成`超文本`格式...strcat(buf,"<!-EndFragment-->\r\n""</body>\r\n""</html>");//现在回来计算所有长度,并写必要的`头`信息.注意,`wsprintf()`在你覆盖串时会截断它,所以你会用用`'\r'`代码替换结尾的0...char*ptr=strstr(buf,"StartHTML");wsprintf(ptr+10,"%08u",strstr(buf,"<html>")-buf);*(ptr+10+8)='\r';ptr=strstr(buf,"EndHTML");wsprintf(ptr+8,"%08u",strlen(buf));*(ptr+8+8)='\r';ptr=strstr(buf,"StartFragment");wsprintf(ptr+14,"%08u",strstr(buf,"<!-StartFrag")-buf);*(ptr+14+8)='\r';ptr=strstr(buf,"EndFragment");wsprintf(ptr+12,"%08u",strstr(buf,"<!-EndFrag")-buf);*(ptr+12+8)='\r';//现在已准备好`所有东西`,可在`剪切板`上放置东西了.打开`剪切板`...if(OpenClipboard(0)){//清空里面...EmptyClipboard();//分配全局内存传输...HGLOBAL hText=GlobalAlloc(GMEM_MOVEABLE|GMEM_DDESHARE,strlen(buf)+4);//把你的串放进全局内存...char*ptr=(char*)GlobalLock(hText);strcpy(ptr,buf);GlobalUnlock(hText);::SetClipboardData(cfid,hText);CloseClipboard();//释放内存...GlobalFree(hText);}//清理...delete[]buf;}

使用此函数,在剪切板中复制超文本代码,可如下:

char*html="<b>This is a test</b><hr>""<li>entry 1""<li>entry 2";CopyHTML(html);

细节

使用向剪切板发送超文本代码的方法,可能自动化办公的客户特别有利.
如,如果你的自动化客户需要为Excel中的单元格中的段生成格式化数据,则可在超文本代码中生成数据,把它发送到剪切板,然后把它粘贴到应用中.

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/26 9:42:59

Linux 系统下 Oracle AI Database 26ai 环境部署全解析

Oracle AI Database 26ai 作为融合 AI 能力的数据平台&#xff0c;正受到数据库管理员和 AI 开发人员的广泛关注。在开发测试场景中&#xff0c;无需构建复杂的高可用架构&#xff0c;通过精简部署流程&#xff0c;单机环境即可快速体验其核心 AI 特性。本文将系统讲解在 Linux…

作者头像 李华
网站建设 2026/6/26 16:30:12

RMBG-2.0轻量模型原理简析:如何在小参数量下实现发丝级分割

RMBG-2.0轻量模型原理简析&#xff1a;如何在小参数量下实现发丝级分割 1. 为什么你需要一个“能看清头发”的抠图工具 你有没有试过用传统抠图工具处理一张带飘逸发丝的证件照&#xff1f;边缘毛躁、半透明区域糊成一片、发丝和背景粘连——最后不得不花半小时手动擦除&…

作者头像 李华
网站建设 2026/6/26 5:40:25

小白友好!Nano-Banana极简纯白风格入门指南,3步出效果

小白友好&#xff01;Nano-Banana极简纯白风格入门指南&#xff0c;3步出效果 你是不是也遇到过这些情况&#xff1f; 想给新设计的服装做一张专业级展示图&#xff0c;但不会用PS&#xff0c;更搞不定3D建模软件&#xff1b;看到别人生成的爆炸图、技术蓝图惊艳不已&#xf…

作者头像 李华
网站建设 2026/7/1 13:48:30

Swin2SR交互指南:左侧面板上传与右侧结果查看

Swin2SR交互指南&#xff1a;左侧面板上传与右侧结果查看 1. 这不是普通放大&#xff0c;是AI显微镜在工作 你有没有试过把一张模糊的截图、马赛克严重的表情包&#xff0c;或者AI生成后只有512像素的小图&#xff0c;直接拉大到打印尺寸&#xff1f;结果往往是——满屏锯齿、…

作者头像 李华