VC编程复制HTML格式到剪贴板 HTML Clipboard Format
小职 2018-07-05 来源 : 阅读 1066 评论 0

摘要:本文主要向大家介绍了VC编程复制HTML格式到剪贴板 HTML Clipboard Format,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。

本文主要向大家介绍了VC编程复制HTML格式到剪贴板 HTML Clipboard Format,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。

测试环境: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粘贴到博客编辑器里面。

本文由职坐标整理并发布,了解更多内容,请关注职坐标编程语言VC/MFC频道!

本文由 @小职 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程