`
dyx1024
  • 浏览: 115170 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

IHTMLDocument2接口的简单操作

 
阅读更多
这几天写的程序中要用到这方面的东西,写了个很简单的例子.
  1. //必须包含的头文件
  2. #include<atlbase.h>
  3. #include"atlconv.h"
  4. #include"Mshtml.h"
  5. /*********************************************************************
  6. *函数名称:intCErrKbaseDHtmlView::MM_FAULTKBASE&refKBaseInfo
  7. *说明:刷新HTMLVIEW页面内容
  8. *入口参数:
  9. *空
  10. *返回值:
  11. *int--
  12. *作者:socrates
  13. *时间:2008-08-0115:37:39
  14. *备注:
  15. *********************************************************************/
  16. intCErrKbaseDHtmlView::RefreshPage(MM_FAULTKBASE&refKBaseInfo)
  17. {
  18. USES_CONVERSION;
  19. CComPtr<IHTMLDocument2>pDoc;
  20. CComPtr<IDispatch>spDisp;
  21. spDisp=GetHtmlDocument();
  22. CStringstrHtml="<html><head><title>kcmm_errkbase</title>/
  23. <styletype='text/css'><!--/
  24. body,td,th{font-size:12px;color:#990000;}.style5{color:#000099}/
  25. --></style></head>/
  26. <body><tablewidth='732'height='490'border='1'bordercolor='#999999'bgcolor='#FFFFFF'>/
  27. <tr><tdwidth='73'height='28'><spanclass='style5'>故障名称:</td><tdwidth='643'>";
  28. strHtml+=refKBaseInfo.strFaultName;
  29. strHtml+="</td></tr><tr><tdheight='27'><spanclass='style5'>故障类型:</td><td>";
  30. strHtml+=refKBaseInfo.strFaultType;
  31. strHtml+="</td></tr><tr><tdheight='31'><spanclass='style5'>故障级别:</td><td>严重级</td></tr>/
  32. <tr><tdheight='31'><spanclass='style5'>影响范围:</td><td>";
  33. strHtml+=refKBaseInfo.strFaultIncidence;
  34. strHtml+="</td></tr><tr><tdheight='62'><spanclass='style5'>故障来源:</td><td>1.运行复杂业务查询;2.病毒</td></tr>/
  35. <tr><tdheight='68'><spanclass='style5'>产生原因:</td><td>";
  36. strHtml+=refKBaseInfo.strFaultReason;
  37. strHtml+="</td></tr><tr><tdheight='68'><spanclass='style5'>处理流程:</td><td>关机->重启</td></tr>/
  38. <tr><tdheight='80'><spanclass='style5'>处理方法:</td><td>";
  39. strHtml+=refKBaseInfo.strHandleMethod;
  40. strHtml+="</td></tr><tr><tdheight='73'><spanclass='style5'>备注信息:</td><td>略</td></tr>/
  41. </table><marqueedirection='up'align='middle'scrolldelay='120'>此知识库仅提供参考信息,并非是最全威信息<br>/
  42. 如有其他问题,请联系金证工程师<br>联系方式:dyx1024@gmail.com</marquee></body></html>";
  43. CRectrc;
  44. GetClientRect(&rc);
  45. CStringstrIn;
  46. strIn=strHtml;
  47. CComQIPtr<IPersistStreamInit>spPersistStream(spDisp);
  48. if(spPersistStream==NULL)
  49. return0;
  50. LPTSTRlpMem=(LPTSTR)::GlobalAlloc(GPTR,strIn.GetLength()+1);
  51. lstrcpy(lpMem,strIn.GetBuffer(strIn.GetLength()));
  52. CComPtr<IStream>spStream;
  53. CreateStreamOnHGlobal(lpMem,TRUE,&spStream);
  54. //初始化后,装载显示
  55. spPersistStream->InitNew();
  56. spPersistStream->Load(spStream);
  57. return0;
  58. }
  59. /*********************************************************************
  60. *函数名称:BOOLPreTranslateMessage(MSG*pMsg)
  61. *说明:屏蔽HTMLVIEW页面的右键功能
  62. *入口参数:
  63. *空
  64. *返回值:
  65. *int--
  66. *作者: socrates
  67. *时间:2008-08-0115:37:39
  68. *备注:
  69. *********************************************************************/
  70. BOOLCErrKbaseDHtmlView::PreTranslateMessage(MSG*pMsg)
  71. {
  72. if(!m_bDisplay)//屏蔽与否的开关
  73. {
  74. switch(pMsg->message)
  75. {
  76. caseWM_CONTEXTMENU:
  77. caseWM_RBUTTONUP:
  78. caseWM_RBUTTONDOWN:
  79. caseWM_RBUTTONDBLCLK:
  80. if(IsWindow(pMsg->hwnd))
  81. {
  82. if(pMsg->wParam==WM_RBUTTONUP)
  83. {
  84. GetParent()->SendMessage(WM_CONTEXTMENU,pMsg->wParam,pMsg->lParam);
  85. }
  86. returnTRUE;
  87. }
  88. }
  89. }
  90. returnCHtmlView::PreTranslateMessage(pMsg);
  91. }

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics