typedef vector FileLines;

typedef vector HeadNameHtml;

typedef vector RowValue;

typedef map TableValueHtml;

//输出数据到临时文件,返回文件全名

CStringW OutputHtmlW(FileLines lineInfo, CStringW wcsFileName)

{

FileLines::iterator ite;

wchar_t wcsPath[MAX_PATH];

wchar_t wcsLogFileName[MAX_PATH];

memset(wcsPath, 0, sizeof(wcsPath));

memset(wcsLogFileName, 0, sizeof(wcsLogFileName));

GetModuleFileNameW(NULL, wcsPath, sizeof(wcsPath));//取得exe全名称

wchar_t* pwcsEnd = wcsrchr(wcsPath,'//');

pwcsEnd++;

*pwcsEnd = '/0';

wcscat(wcsPath, wcsFileName);

std::wofstream output(wcsPath, ios::trunc);

output.imbue(locale("chs") ); //设定当前编码为中文

for (ite = lineInfo.begin(); ite != lineInfo.end(); ite++)

{

output <

output << endl;

}

output.close();

return CStringW(wcsPath);

}

//将要显示的内容转换为html格式的数据

FileLines CreateHtmlContext(HeadNameHtml headNames, TableValueHtml items)

{

CStringW wcsInfo(L"");

CStringW wcsFileName((L"Report.html"));

CStringW wcsFullName;

TableValueHtml::iterator ite;

FileLines lines;

int iloop = 0;

int iItemsCount = items.size();

int iColumnCount = headNames.size();

lines.insert(lines.end(), L"");

lines.insert(lines.end(), L"

");

lines.insert(lines.end(), L"

");

lines.insert(lines.end(), L"

lines.insert(lines.end(), L"

");

for (; iloop < iColumnCount; iloop++) {

lines.insert(lines.end(), L"

");

lines.insert(lines.end(), headNames[iloop]);

lines.insert(lines.end(), L" ");

lines.insert(lines.end(), L"

");

}

lines.insert(lines.end(), L"

");

for(ite = items.begin(); ite != items.end(); ite++) {

lines.insert(lines.end(), L"

");

for (iloop = 0; iloop < iColumnCount; iloop++) {

lines.insert(lines.end(), L"

");

CStringW value = (*ite).second[iloop];

lines.insert(lines.end(), value);

lines.insert(lines.end(), L" ");

lines.insert(lines.end(), L"

");

}

lines.insert(lines.end(), L"

");

}

lines.insert(lines.end(), L"

");

lines.insert(lines.end(), L"  ");

lines.insert(lines.end(),  L"");

return lines;

}

/*应用上面的两个函数将指定的内容在html中以表格的方式显示

void ShowHtmlFile()

{

CStringW wcsFullName;

CStringW wcsFileName(L"Report.html");//创建的文件名称

TableValueHtml items; //要显示的内容

HeadNameHtml headNames ;//表标题

.

.    ~添加内容到items, headNames~

.

.

FileLines lines = CreateHtmlContext(headNames, items);//将要显示的内容转换为html格式的数据

wcsFullName = OutputHtmlW(lines, wcsFileName); //输出数据到临时文件,返回文件全名

ShellExecute(NULL, L"Open", L"IEXPLORE.EXE", wcsFullName, NULL, SW_SHOWNORMAL);//用浏览器显示文件

}

怎么将html转换为mfc,MFC 创建HTML格式数据并显示相关推荐

  1. 在MFC中创建动态控件的生成与响应

    在MFC中创建动态控件的生成与响应 2008-10-22 作者:风林 网友评论 1 条 点击进入论坛 动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建 ...

  2. 转:MFC中创建多线程

    MFC中创建多线程 MFC的多线程函数必须声明为静态的或者是全局函数(不同的在于全局函数不能访问类的私有静态成员,而静态类函数可以):但这样的线程函数只能访问静态的成员变量,要实现访问类的其他成员,可 ...

  3. MFC动态创建控件并响应事件代码实现过程

    MFC动态创建控件以及响应动态创建的控件的事件的实现方法如下. 1.创建对象     用new进行动态创建一个对象.然后调用Create函数创建窗口,在函数的父窗口参数中传入this或者用AfxGet ...

  4. 解决MFC 窗口创建时 争夺焦点的问题

    解决MFC 窗口创建时 争夺焦点的问题 参考文章: (1)解决MFC 窗口创建时 争夺焦点的问题 (2)https://www.cnblogs.com/h2052519/p/6377635.html ...

  5. mfc | mfc集成opencv,实现监控、拍照、录像、录像播放(保姆级教程)

    1. 开发环境 编辑器:Visual Studio2022 OpenCV版本:4.5.4 2. MFC项目搭建 点击完成后,项目创建完成.界面如下: 点击"本地Windows调试器" ...

  6. [转]MFC子线程更改图像数据后更新主窗口图像显示方法

    程序思路是由外部的输入输出控制卡发出采集图像信号,之后相机采集图像得到图像数据指针,接收图像数据指针创建成图像最后显示到MFC对话框应用程序的Picture Control控件上,同时,为了标定相机位 ...

  7. 12-1 蓝色天空 : 创建一个背景为蓝色的Pygame窗口 12-2 游戏角色 : 找一幅你喜欢的游戏角色位图图像或将一幅图像转换为位图。 创建一个类, 将该角色绘制到屏幕中央, 并将该图像的背景色

    12-1 蓝色天空 : 创建一个背景为蓝色的Pygame窗口 import sys import pygame def run_game():pygame.init()screen = pygame. ...

  8. python 将YOLO(txt)格式的标注数据批量转换为PascalVOC(XML)格式的标注数据

    python 将YOLO(txt)格式的标注数据批量转换为PascalVOC(XML)格式的标注数据 准备工作 修改代码路径 运行代码 程序bug(没时间看所以还没解决): 准备工作 需在目标文件夹中 ...

  9. Python将JSON格式数据转换为SQL语句以便导入MySQL数据库

    前文中我们把网络爬虫爬取的数据保存为JSON格式,但为了能够更方便地处理数据.我们希望把这些数据导入到MySQL数据库中.phpMyadmin能够把MySQL数据库中的数据导出为JSON格式文件,但却 ...

最新文章

  1. MySQL 约束类型
  2. UITesting Bundle使用
  3. Java常用类之【日期相关类】
  4. 字符串处理:布鲁特--福斯算法
  5. linux 内核驱动的名字,Linux内核驱动的的platform机制
  6. SQLite数据库如何存储和读取二进制数据
  7. Javascript--闭包引起的IE内存泄露(转载)
  8. 【模糊滑模】基于模糊切换增益调节的滑模控制
  9. python监控钉钉群消息_使用python对mysql主从进行监控,并调用钉钉发送报警信息...
  10. 北京某公司IBM X3650M3存储崩溃的解决过程
  11. JAVA初学,小白编程,8大基本类型
  12. 人工智能原理——第一章 绪论
  13. 字节流、字节流、转换流、打印流
  14. Rockstar Games遭黑客攻击,《侠盗猎车手6》90个开发视频外泄
  15. positions的意思_position是什么意思_position的翻译_音标_读音_用法_例句_爱词霸在线词典...
  16. 计算机考研初试350分什么水平,考研分数,考研350分什么水平!
  17. opecv BGR转NV21
  18. 写邮件的格式:加开头结尾,以示尊重
  19. 无线攻击之Aircrack-ng破解无线密码(无线密码破解套件)
  20. 2023美赛 ICM E题 Light Pollution

热门文章

  1. dad my_【玩转英文绘本】My Dad!《我爸爸》
  2. power oj 2866青春猪头少年不做怀梦美少女的梦(寻找母串中有多少个子串)
  3. 微信实时给服务器发送gps位置,你知道吗?微信聊天发原图暴露你的位置信息
  4. cf 581B-------Luxurious Houses
  5. js获取上一个页面url
  6. 服务端开发框架及技术(转)
  7. 【黑马程序员西安中心】作为应届生的我,终于进入IT行业了
  8. Ubuntu鼠标一直闪烁,win10鼠标正常
  9. 链接脚本中的SECTIONS定义
  10. 2022帆软BI数据分析大赛强势来袭,瓜分20W奖金