写一个C++,MFC在UNICODE下将HTML源码以可视化方式复制到剪切板的函数
来源:互联网 发布:江西淘宝大学电话 编辑:程序博客网 时间:2024/06/05 18:05
void SentHTML2ClipBrd(CString html){static int clipformat = 0; if(!clipformat) clipformat = RegisterClipboardFormat(L"HTML Format");CString info =L"Version:0.9\r\n"L"StartHTML:00000000\r\n"L"EndHTML:00000000\r\n"L"StartFragment:00000000\r\n"L"EndFragment:00000000\r\n"L"<html><body>\r\n"L"<!--StartFragment-->\r\n";info+=html;;info+=L"\r\n";info+=L"<!--EndFragment-->\r\n";info+=L"</body>\r\n";info+=L"</html>";int starthtml = info.Find(L"<");int endhtml = info.Find(L"</html>")+7;int startfragment = info.Find(L"<!--StartFragment-->")+21;int endfragment = info.Find(L"<!--EndFragment-->")-2+GetCHWordCount(html)*2;CString head;CString temp;head = L"StartHTML:";temp.Format(L"%08u",starthtml);head+=temp;info.Replace(L"StartHTML:00000000",head);head = L"EndHTML:";temp.Format(L"%08u",endhtml);head+=temp;info.Replace(L"EndHTML:00000000",head);head = L"StartFragment:";temp.Format(L"%08u",startfragment);head+=temp;info.Replace(L"StartFragment:00000000",head);head = L"EndFragment:";temp.Format(L"%08u",endfragment);head+=temp;info.Replace(L"EndFragment:00000000",head);head = L"StartSelection:";temp.Format(L"%08u",startfragment);head+=temp;info.Replace(L"StartSelection:00000000",head);head = L"EndSelection:";temp.Format(L"%08u",endfragment);head+=temp;info.Replace(L"EndSelection:00000000",head);if(::OpenClipboard(0)){info = ConvertCString2UTF8(info);EmptyClipboard();char* date = CStringToCharArray(info);HGLOBAL hText = GlobalAlloc(GMEM_MOVEABLE|GMEM_DDESHARE,strlen(date)+4);char * clipptr = (char*)GlobalLock(hText);strcpy(clipptr,date);SetClipboardData(clipformat,hText);GlobalUnlock(hText);CloseClipboard();}else{GlobalFree(hText);}}
GetCHWordCount
就是获取传入html字符串内的中文数目,本代码为剪切板0.9版本,后续会续写1.0
2012年10月23日
ConvertCStringW2UTF8 返回后的 char* 用后应当释放,否则会变成野指针.
另外代码有一处漏洞.
int endhtml = info.Find(L"</html>")+7;一行,换成
int endhtml = info.Find(L"</html>")+7+GetCHWordCount(html)*2;之前因为测试时向剪切板发送的网页源码较少,所以仅仅几个汉字是没关系的,
EndHTML:00000000//这个数值会错误.修正后错误解决
- 写一个C++,MFC在UNICODE下将HTML源码以可视化方式复制到剪切板的函数
- oracle将一个用户下的所有表复制到以一个用户下
- MFC - 复制内容到剪切板
- 将窗体复制到剪切板
- 将位图复制到剪切板
- 一个ZeroClipboard在多个地方实现复制到剪切板
- 将文本的内容复制到剪切板,ZeroClipboard
- MFC截屏、绘制并复制到剪切板
- MFC 复制某个区域到剪切板 bitblt
- 如何以编程方式将一个 IMG 元素复制到剪贴板
- 如何以编程方式将一个 IMG 元素复制到剪贴板
- 将文本框信息复制到剪切板
- Java将文件复制到剪切板
- JS将制定内容复制到剪切板
- Android将文字复制到剪切板
- JavaScript将文本复制到剪切板
- iOS 将内容复制到剪切板
- Unity将文本复制到剪切板
- 周立功谈嵌入式:我的25年嵌入式生涯
- 给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数
- Android基础 为listView增加更多按钮(分页显示)
- StringBuilder与StringBuffer的区别
- 洗牌算法
- 写一个C++,MFC在UNICODE下将HTML源码以可视化方式复制到剪切板的函数
- 泛数独小规律
- hdu1164筛选法对整数分解
- 从IT菜鸟变为“IT骨干开发者”的11个建议
- JAVA技术支持课--第三次java语言技术支持授课思路 (课件及作业)
- 解析web.xml中常常需要配置几个Spring核心类
- hdu 2846 【字典树】单词子串的匹配数
- 技术精英谈IT程序员的出路在哪里——很经典
- JSP常用内置对象使用说明