小职
2018-07-05
来源 :
阅读 1557
评论 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
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号