这几天写的程序中要用到这方面的东西,写了个很简单的例子.
- //必须包含的头文件
- #include<atlbase.h>
- #include"atlconv.h"
- #include"Mshtml.h"
- /*********************************************************************
- *函数名称:intCErrKbaseDHtmlView::MM_FAULTKBASE&refKBaseInfo
- *说明:刷新HTMLVIEW页面内容
- *入口参数:
- *空
- *返回值:
- *int--
- *作者:socrates
- *时间:2008-08-0115:37:39
- *备注:
- *********************************************************************/
- intCErrKbaseDHtmlView::RefreshPage(MM_FAULTKBASE&refKBaseInfo)
- {
- USES_CONVERSION;
- CComPtr<IHTMLDocument2>pDoc;
- CComPtr<IDispatch>spDisp;
- spDisp=GetHtmlDocument();
- CStringstrHtml="<html><head><title>kcmm_errkbase</title>/
- <styletype='text/css'><!--/
- body,td,th{font-size:12px;color:#990000;}.style5{color:#000099}/
- --></style></head>/
- <body><tablewidth='732'height='490'border='1'bordercolor='#999999'bgcolor='#FFFFFF'>/
- <tr><tdwidth='73'height='28'><spanclass='style5'>故障名称:</td><tdwidth='643'>";
- strHtml+=refKBaseInfo.strFaultName;
- strHtml+="</td></tr><tr><tdheight='27'><spanclass='style5'>故障类型:</td><td>";
- strHtml+=refKBaseInfo.strFaultType;
- strHtml+="</td></tr><tr><tdheight='31'><spanclass='style5'>故障级别:</td><td>严重级</td></tr>/
- <tr><tdheight='31'><spanclass='style5'>影响范围:</td><td>";
- strHtml+=refKBaseInfo.strFaultIncidence;
- strHtml+="</td></tr><tr><tdheight='62'><spanclass='style5'>故障来源:</td><td>1.运行复杂业务查询;2.病毒</td></tr>/
- <tr><tdheight='68'><spanclass='style5'>产生原因:</td><td>";
- strHtml+=refKBaseInfo.strFaultReason;
- strHtml+="</td></tr><tr><tdheight='68'><spanclass='style5'>处理流程:</td><td>关机->重启</td></tr>/
- <tr><tdheight='80'><spanclass='style5'>处理方法:</td><td>";
- strHtml+=refKBaseInfo.strHandleMethod;
- strHtml+="</td></tr><tr><tdheight='73'><spanclass='style5'>备注信息:</td><td>略</td></tr>/
- </table><marqueedirection='up'align='middle'scrolldelay='120'>此知识库仅提供参考信息,并非是最全威信息<br>/
- 如有其他问题,请联系金证工程师<br>联系方式:dyx1024@gmail.com</marquee></body></html>";
- CRectrc;
- GetClientRect(&rc);
- CStringstrIn;
- strIn=strHtml;
- CComQIPtr<IPersistStreamInit>spPersistStream(spDisp);
- if(spPersistStream==NULL)
- return0;
- LPTSTRlpMem=(LPTSTR)::GlobalAlloc(GPTR,strIn.GetLength()+1);
- lstrcpy(lpMem,strIn.GetBuffer(strIn.GetLength()));
- CComPtr<IStream>spStream;
- CreateStreamOnHGlobal(lpMem,TRUE,&spStream);
- //初始化后,装载显示
- spPersistStream->InitNew();
- spPersistStream->Load(spStream);
- return0;
- }
- /*********************************************************************
- *函数名称:BOOLPreTranslateMessage(MSG*pMsg)
- *说明:屏蔽HTMLVIEW页面的右键功能
- *入口参数:
- *空
- *返回值:
- *int--
- *作者: socrates
- *时间:2008-08-0115:37:39
- *备注:
- *********************************************************************/
- BOOLCErrKbaseDHtmlView::PreTranslateMessage(MSG*pMsg)
- {
- if(!m_bDisplay)//屏蔽与否的开关
- {
- switch(pMsg->message)
- {
- caseWM_CONTEXTMENU:
- caseWM_RBUTTONUP:
- caseWM_RBUTTONDOWN:
- caseWM_RBUTTONDBLCLK:
- if(IsWindow(pMsg->hwnd))
- {
- if(pMsg->wParam==WM_RBUTTONUP)
- {
- GetParent()->SendMessage(WM_CONTEXTMENU,pMsg->wParam,pMsg->lParam);
- }
- returnTRUE;
- }
- }
- }
- returnCHtmlView::PreTranslateMessage(pMsg);
- }