CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

任何让CWebBrower2控件动态加载html

楼主yujia120(永不停息)2005-11-12 22:47:05 在 VC/MFC / 基础类 提问

在下文中,CHtmlView派生的控件可以动态的加载html内容,不用先写到文件中再显示,而是在代码中存放编辑html语句  
  http://www.codeproject.com/miscctrl/htmlctrlsample.asp  
  中:  
  void   CHTMLSampleDlg::OnButton1()    
  {  
  CString   csHTML   =   "";  
   
  m_iCounter++;  
   
  //   Preparing   the   HTML   page   to   be   shown...  
  csHTML.Format("<html><body   bgcolor=\"7AA1E6\"   "  
  "leftmargin=\"0\"   topmargin=\"0\"   rightmargin=\"0\"   bottommargin=\"0\"   oncontextmenu=\"return   false\"><table   width=\"100%%\"   bgcolor=\"7AA1E6\"   align=\"left\"   cellspacing=\"6\"><tr><td   bgcolor=\"D6DFF7\"   bordercolor=\"#FFFFFF\"><table   width=\"100%%\"><tr><td   bgcolor=\"#FFFFFF\"><img   src=\"rang.png\"   width=\"16\"   height=\"16\">   Actual   value</td></tr><tr><td><font   size=\"2\">Now   the   value   is:   <b>%i</b>.</font></td></tr></table></td></tr></table></body></html>",  
  m_iCounter);  
   
  this->m_cHTML.SetNewHTMLContent(csHTML,true);  
  }  
   
   
  我想请教的是:CWebBrower2可不可以也实现这样的功能  
  谢谢 问题点数:200、回复次数:7Top

1 楼myy()回复于 2005-11-12 22:58:29 得分 10

这是BCB的代码,关键部分通用,参考一下吧:  
   
   
          std::auto_ptr<TStringList>   ss   (new   TStringList());  
          ss->LoadFromFile(AppPath+"html\\List.htm");  
          AnsiString   s=ss->Text;  
   
          CComQIPtr<IPersistStreamInit,   &IID_IPersistStreamInit>   iPssi(wb->Document);  
          if(iPssi==NULL)  
              return;  
   
          if(!SUCCEEDED(iPssi->InitNew()))  
              return;  
   
          IStream     *istm   =   NULL;  
          HGLOBAL       html   =   NULL;  
          try   {  
              html=::GlobalAlloc(   GPTR,   s.Length()+1);  
              ::GlobalLock(html);  
   
              CopyMemory(html,   s.c_str(),   s.Length());  
   
              if(!SUCCEEDED(CreateStreamOnHGlobal(   html,   false,   &istm)))  
                  return;  
              iPssi->Load(istm);  
              istm->Release();  
          }  
          __finally   {  
              ::GlobalUnlock(html);  
              ::GlobalFree(html);  
          }  
  Top

2 楼myy()回复于 2005-11-12 23:02:15 得分 0

CComQIPtr<IPersistStreamInit,   &IID_IPersistStreamInit>   iPssi(wb->Document);  
  中的:  
  wb->Document   是获取IHTMLDocument2指针,CHtmlView也有同类方法  
  Top

3 楼yujia120(永不停息)回复于 2005-11-13 00:07:19 得分 0

http://www.codeproject.com/editctrl/HtmlEdit.asp  
  这个我也找到过,可是使用很复杂,我编译还没有通过,不知道引用什么库和头文件编译,  
  error   C2065:   'IDM_IE50_PASTE'   :   undeclared   identifier等等20个找不到定义Top

4 楼goodboyws(深夜不眠者(VCMVP))回复于 2005-11-13 00:09:11 得分 140

IUnknown*   pUnk   =   GetControlUnknown();  
        IWebBrowser2*   pBrowser;  
        HRESULT   hr   =   lpUnk->QueryInterface(IID_IWebBrowser2,   (void**)   &pBrowser);  
        CComPtr<IDispatch>   pDisp;  
        hr   =   m_spWebBrowser2->get_Document(&pDisp);  
        CComQIPtr<IHTMLDocument2,   &IID_IHTMLDocument2>   spHTML;  
        spHTML   =   pDisp;  
   
                              hr   =   S_OK;  
  IHTMLElement   *pBodyElement;  
  //get   body   element  
  hr=spHTML   ->get_body(   &pBodyElement);  
  //put   content   to   body   element  
   
  _bstr_t   pbBody(   csHTML);  
  hr=pBodyElement->put_innerHTML(   pbBody);  
   
  if(   hr==S_FALSE)   return   FALSE;  
  else   return   TRUE;  
  Top

5 楼goodboyws(深夜不眠者(VCMVP))回复于 2005-11-13 00:10:44 得分 0

关键是得到IHTMLDocument2*指针,剩下的工作就差不多了Top

6 楼yujia120(永不停息)回复于 2005-11-14 13:54:32 得分 0

m_spWebBrowser2没有get_Document方法?是pBrower?怎么和m_spWebBrowser2关联?Top

7 楼jiangsheng(蒋晟.Net[MVP])回复于 2005-11-14 16:00:16 得分 50

CWebBrower2?嗯,这玩意还是不要用的好,OLE操作比COM接口慢多了。  
  我一般直接用CWnd::CreateControl来创建WebBrowser控件的,这也是CHTMLView内部使用的方法。  
  IDM_IE50_PASTE找不到定义的话,去升级VCTop

相关问题

  • DataGrid 加载控件
  • 怎么在html中给ImageList控件加载图片
  • 一个加载模版(HTML)操作控件的问题
  • WINSOCK控件加载错误
  • 动态加载控件?
  • 控件不能加载
  • 如何加载mshflexgrid控件??
  • 动态加载控件
  • 在控件中加载dll!
  • 如何动态加载控件

关键词

  • 控件
  • html
  • 加载
  • cshtml
  • 动态

得分解答快速导航

  • 帖主:yujia120
  • myy
  • goodboyws
  • jiangsheng

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo