VC复制HTML格式到剪贴板 HTML Clipboard Format

article/2025/10/19 3:52:15
本文作者:无幻
测试环境:Windows 7
开发环境:Visual Studio 2008 SP1

        参照MSDN和帮助,在VC下测试代码如下:

C++语言
BOOL CBaseDialogDlg::CopyHtmlToClip(  const CString &strHtml )
{
     // 1)转换成UTF-8
    CW2A pszU8(CT2W(strHtml), CP_UTF8);
     int nHtmlSrcLen = strlen(pszU8);

     // 2)组成剪贴板片段
    CStringA strHtmlClip;
    strHtmlClip.Format( "Version:0.9 \r\n "
         "StartHTML:%08u \r\n "
         "EndHTML:%08u \r\n "
         "StartFragment:%08u \r\n "
         "EndFragment:%08u \r\n "
         "<html><body> \r\n "
         "<!--StartFragment --> \r\n "
         "%s \r\n "
         "<!--EndFragment--> \r\n "
         "</body></html>",
        97, 172 + nHtmlSrcLen, 111, 136 + nHtmlSrcLen, pszU8);

     // 3)剪贴板操作
     static  int cfid = 0;
     if(!cfid)
    {
        cfid = RegisterClipboardFormat(_T( "HTML Format"));
    }

     if (!OpenClipboard())
    {
         return  false;
    }

     if (!EmptyClipboard())
    {
        CloseClipboard();
         return  false;
    }

    HGLOBAL hClipBuffer = GlobalAlloc(GMEM_DDESHARE, strHtmlClip.GetLength() + 1);
     if (hClipBuffer == NULL)
    {
        CloseClipboard();
         return  false;
    }

     char *lpExpBuffer = ( char *)GlobalLock(hClipBuffer);
     if (lpExpBuffer == NULL)
    {
        GlobalFree(hClipBuffer);
        CloseClipboard();
         return  false;
    }

    memcpy(lpExpBuffer, strHtmlClip, strHtmlClip.GetLength());
    lpExpBuffer[strHtmlClip.GetLength()] =  '\0';

    GlobalUnlock(hClipBuffer);
    SetClipboardData(cfid, hClipBuffer);
    CloseClipboard();    

     return TRUE;
}
调用方式:
C++语言
void CBaseDialogDlg::OnBnClickedButton1()
{
    CString str = _T( "<b>This is a test.这是一个测试。</b><hr><li>entry 1<li>entry 2");
    CopyHtmlToClip(str);
}
利用个剪贴板查看器,可以查看此时剪贴板的内容:

然后,Ctrl + V粘贴到博客编辑器里面,效果如下所示:
This is a test.这是一个测试。


  • entry 1
  • entry 2 


    参考资料:
    1.HTML Clipboard Format  http://msdn.microsoft.com/en-us/library/aa767917.aspx
    2.如何使用 Visual c + + 向剪贴板添加 HTML 代码  http://support.microsoft.com/kb/274308


http://chatgpt.dhexx.cn/article/hHQDPqil.shtml

相关文章

如何制作一个横版格斗过关游戏(2) Cocos2d-x 2.0.4 .

本文原创版权归 csdn 无幻 所有&#xff0c;转载请详细标明原创作者及出处&#xff0c;以示尊重&#xff01; 作者&#xff1a;无幻 原文&#xff1a;http://blog.csdn.net/akof1314/article/details/8572546 在第一篇《如何制作一个横版格斗过关游戏》基础上&#xff0c;增加…

Cocos2d-x 2.0.1 学习tests示例(二)ActionsTest

作者&#xff1a;无幻 博客&#xff1a; http://blog.csdn.net/akof1314 初学Cocos2d-x&#xff0c;如文章有错误之处&#xff0c;欢迎指出 自上篇《 Cocos2d-x 2.0.1 学习tests示例&#xff08;一&#xff09;Manual Transformation》继续学习tests示例。 1 2 3 4 5 6 7 8 9…

改变CMFCRibbonBar高度

本文作者&#xff1a;无幻 测试环境&#xff1a;Windows XP 开发环境&#xff1a;Visual Studio 2010 要改变CMFCRibbonBar的高度&#xff0c;需要重载CalcFixedLayout函数&#xff0c;例如如下&#xff1a; 头文件&#xff1a; #pragma once// // CKofMFCRibbonQuickAccessTo…

Cocos2d-x 2.0.1 学习tests示例(一)Manual Transformation

作者&#xff1a;无幻 博客&#xff1a; http://blog.csdn.net/akof1314 初学Cocos2d-x&#xff0c;如文章有错误之处&#xff0c;欢迎指出 从上次《Cocos2d-x 2.0 从HelloWorld入手》&#xff0c;继续学习tests示例。 1.右键点击“Solution ‘cocos2d-win32.vc2008’"&…

Unity3d好东西应该被看见_分享一个Assetbundle分析工具

关于Assetbundle分析 很多年前获得过搜狐畅玩的代码 不确定是不是腾讯流出版本&#xff0c;反正经历了深圳畅玩&#xff0c;到北京畅玩。 整个中国地图&#xff0c;从南到北&#xff0c;成熟的Unity手游团队&#xff0c;手上几乎都是那一份ASSETBUNDLE处理代码 功能太多&am…

Visual C++ 2008 Feature Pack 示例截图

Visual C 2008 Feature Pack 示例截图 by 无幻 百度文库&#xff1a;http://wenku.baidu.com/view/f09e5575a417866fb84a8eb6.html 豆丁文档&#xff1a;http://www.docin.com/p-55873972.html CSDN下载&#xff1a;http://download.csdn.net/source/2380293 动态图片显示…

CRichEditCtrlEx支持静态表情聊天类的使用

本文作者&#xff1a;无幻 博客地址&#xff1a;http://blog.csdn.net/akof1314 平时我们在做IM聊天之类的软件的时候&#xff0c;一般都会使用Rich Edit控件来作为聊天编辑框和聊天记录框的控件&#xff0c;在之前的VC知识库看过《类似 MSN 信息发送框的制作(上)》、《类似 MS…

方舟服务器文件夹,方舟生存进化文件夹里哪个才是打开游戏 | 手游网游页游攻略大全...

发布时间&#xff1a;2016-04-07 有许多玩家反映在方舟生存进化当中自己在洞穴里只能挖到石头,挖不到水晶,这是怎么回事呢?接下来小编就为大家带来方舟生存进化在洞穴里怎么才能采集到水晶的详细攻略. 答:用铁镐挖才能采集到水晶,用石镐就只能采到石头,希望能帮到 ... 标签&am…

【VC学习】VC2010 Windows Media Player控件的使用技巧

声明&#xff1a;以下博客基于无幻 VC2008 Windows Media Player控件的使用技巧&#xff0c;自行学习整理 附上原地址&#xff1a;http://blog.csdn.net/akof1314/article/details/4900040 本是跟着老师选修课学习&#xff0c;编程都是基于MFC&#xff0c;手动在toolbox里面修…

真Unity3d_分享一个编辑器扩展模型预览视图Mesh Preview Inspector窗口

预览窗口 在 Unity 编辑器界面上可以看到除了 Game 视图、Scene 视图,其他的视图也会出现绘制三维物体的地方,比如检视器的预览窗口,当选中网格时,会对网格进行预览,如下所示: 预览窗口是UnityEditor的底层框架 UnityEditor框架图 可看我之前的博客: https://blog.c…

lookup

这里注意数组 1.{ sum((E3:E11)*(F3*F11) )} 代表数组运算ctrlentershift&#xff0c;因为(E3:E11)*(F3*F11)返回的是数组 2. sum(E3:E11)其中E3:E11也是数组但是直接enter就可以‘ 为什么&#xff1a;因为(E3:E11)是本来就存在的列&#xff0c;(E3:E11)*(F3*F11)是运算出来…

access Dlookup的值写入表

目的 写入供应商名称&#xff0c;自动弹出供应商代码&#xff0c;然后将该条记录增加到表中 方法 在供应商名称的属性表写&#xff0c;不是供应商代码的属性表 在事件过程中写入- Private Sub 供应商名称_AfterUpdate() Me.供应商代码.Value DLookup(“供应商代码”, “Q_…

access-vba之用户登录窗口

界面截图如下: 创建一个窗体设计,然后在设计中找到控件 因为科室更新,带来了用户的更新,所有用户的行来源不指定,但科室的行来源要指定 最后,我们通过VBA实现用户的行来源,这样可以保证在科室变化的情况下,用户实时显示每个科室的人员 Private Sub keshi_AfterUpdate(…

Excel函数公式大全—LOOKUP函数

EXCEL系列文章目录 Excel系列文章是本人亲身经历职场之后萌发的想法&#xff0c;为什么Excel覆盖如此之广&#xff0c;几乎每个公司、学校、家庭都在使用&#xff0c;但是它深藏的宝藏功能却很少被人使用&#xff0c;PQ、BI这些功能同样适用于数据分析&#xff1b;并且在一些需…

Dev的searchLookUpEdit

新添加的searchLookUpEdit的Text属性值为[EditValue is null]&#xff0c;并且无法直接通过修改Text属性来修改&#xff0c;而是可以通过修改它的Properties.NullText属性来修改&#xff0c;比如将该属性赋值为空&#xff0c;则为如下效果&#xff1a; searchLookUpEdit1.Prop…

LOOKUP函数10种经典用法

转载 https://mp.weixin.qq.com/s?__bizMzI0NzA5MTAyNg&mid2653352337&idx1&sn7494ca76ddf66483d8961f84fdbc958e&chksmf2670bacc51082baa65caa5f9af84e2f2121d635a16be1e9fd9557c6d8c68a5fe17bf90a4ce8&scene27 案例1:按照销售金额区间查询提成比例 此法…

LOOKUP函数

数值可升序&#xff1a; lookup&#xff08;查找值&#xff0c;查找区域&#xff0c;返回值&#xff09; lookup&#xff08;查找值&#xff0c;查找区域返回值B2&#xff09; B2的 第一列为查找区域&#xff0c;最后一列返回值 https://wenku.baidu.com/view/ddce993ae45c3b35…

ChatGPT 总结VLOOKUP,LOOKUP,HLOOKUP,XLOOKUP用法与区别

很多人一直都没明白Excel中VLOOKUP&#xff0c;LOOKUP&#xff0c;HLOOKUP&#xff0c;XLOOKUP各查找函数之间的区别到底是什么&#xff0c;也很容易记错。 今天我们就让ChatGPT人工智能来帮助我们总结出各函数的用法。 当涉及到在 Excel 中查找数据时&#xff0c;这些函数都可…

Excel中的HLOOKUP、VLOOKUP、XLOOKUP函数

昨天使用INDEX和MATCH两个EXCEL函数完成了表中数据的快速查找&#xff0c;想一想&#xff0c;EXCEL中还有另外的查找函数&#xff0c;比如HLOOKUP、VLOOKUP、LOOKUP、XLOOKUP函数&#xff0c;那使用它们能不能完成同样的操作呢&#xff1f;   可以的。   仍然是昨天的问题&…

【保姆级】lookup-method标签实践与分析

【Spring源码系列- IOC】 1 【Spring源码】0.安装Gradle环境 2 【Spring源码】1.下载与编译_pom relocation to an other version number is not f 3 【Spring源码】2.试个水先&#xff5e;Debug找到传说中的三级缓存(图解向&#xff0c;堆图预警) 4 【Spring源码】3. x…