MFC里NewWindow2Explorer1的一些常用处理代码,FreeEIM部分代码。

void CADSLTryDlg::NewWindow2Explorer1(LPDISPATCH* ppDisp, BOOL* Cancel)
{
     // TODO: 在此处添加消息处理程序代码
     
     IUnknown*   pUnk   =this->m_oIExplorer.GetControlUnknown();   
   if(pUnk)   
   {   
   IDispatch*   pDisp   =   NULL;   
   HRESULT   hr   =   pUnk->QueryInterface(IID_IDispatch,   (void**)&pDisp);   
    
   if(SUCCEEDED(hr)&&pDisp)  
   { 
     *ppDisp=pDisp; 
      *Cancel   =   FALSE;  
   }
   }

在此NewWindow2事件代码中,档一个新常口需要被创建, 我们建立一个新的当前窗体Form1的拷贝. 在此表单窗体, 相当于Internet Explorer的新实例,将处理导航.

在mfc中我们需要首先加入NewWindow2 事件的映射条目到视图类的事件映射宏. (不要忘记包含 ExDispID.h in, 那里有DISPID_NEWWINDOW2 定义.)

ON_EVENT(CMfcWebHostView, IDC_WEBBROWSER, DISPID_NEWWINDOW2,
  OnNewWindow2, VTS_PDISPATCH VTS_PBOOL)

下一步声明OnNewWindow2 方法:

void OnNewWindow2(LPDISPATCH* ppDisp, BOOL* Cancel);

最后实现OnNewWindow2 方法以创建一个新的MfcWebHost窗口实例:

void CMfcWebHostView::OnNewWindow2(LPDISPATCH FAR* ppDisp,                                   BOOL FAR* Cancel){   // Ensure that ppDisp is not NULL.   // If it is NULL, you probably specified   // VT_DISPATCH for the first parameter in   // the ON_EVENT macro for NewWindow2 in   // the event sink map. The correct parameter   // type is VT_PDISPATCH.   //   ASSERT(ppDisp);    if (!ppDisp)      return;    // Get a pointer to the application object   // for this application.   //   CWinApp* pApp = AfxGetApp();    // Get the correct document template.   //   CDocTemplate* pDocTemplate;    POSITION pos = pApp->GetFirstDocTemplatePosition();   pDocTemplate = pApp->GetNextDocTemplate(pos);   ASSERT(pDocTemplate);       // Create the new frame.   CFrameWnd* pNewFrame = pDocTemplate->CreateNewFrame(GetDocument(),                                             (CFrameWnd*)AfxGetMainWnd());   ASSERT(pNewFrame);       // Activate the frame, and set its active view.   //   pDocTemplate->InitialUpdateFrame(pNewFrame, NULL);   CMfcWebHostView* pWbView =                     (CMfcWebHostView*)pNewFrame->GetActiveView();   ASSERT(pWbView);   *ppDisp = pWbView->m_webBrowser.GetApplication();}

如果你在sid或者mdi应用程序中控制一个WebBrowser控件,实现OnNewWindow2 方法是复杂的且需要知道如何解决同文档模版如何工作. 或许, 如果你在一个给予对话框的应用程序控制一个WebBrowser控件是较为容易的.此处为示例:

void CMyDlg::OnNewWindow2(LPDISPATCH FAR* ppDisp, BOOL FAR* Cancel) {   m_dlgNewWB = new CMyDlg;   m_dlgNewWB->Create(IDD_MYDLG_DIALOG);     *ppDisp = m_dlgNewWB->m_webBrowser.GetApplication();}

记住当你完成打开的新对话框后删除(delete) m_dlgNewWB. 且不要在CMyDlg::OnInitDialog方法中导航, 因为这样代码将不会工作.

MFC里NewWindow2Explorer1的一些常用处理代码相关推荐

  1. SAP MM 不常用事务代码MIDO

    SAP MM 不常用事务代码MIDO SAP MM模块盘点流程里有一个不常用的事务代码MIDO (Physical Inventory Overview).在项目实践中,笔者之前基本没有去关注过这个事 ...

  2. SAP MM 初阶之不常用事务代码MEBV

    SAP MM 初阶之不常用事务代码MEBV 今天从一个同行那里听到事务代码MEBV(extend agreement),可以用于在年底的时候顺延或者说扩展合同的.这个事务代码笔者从未用过,也没有听说过 ...

  3. SAP MM 不常用事务代码之MBSL - Copy Material Document

    SAP MM 不常用事务代码之MBSL - Copy Material Document 闲来无事的时候,笔者喜欢在SAP系统里捣鼓捣鼓.SAP设计的那些不常用/没关注过的事务代码,字段等,总能引起笔 ...

  4. android 常用混淆,Android常用的代码混淆整理【原创】

    android里的代码混淆是比不可少的东西,下面就贴一些常用的代码混淆. #指定代码的压缩级别 -optimizationpasses 5 #包明不混合大小写 -dontusemixedcasecla ...

  5. css宋体代码_前端开发必备的CSS命名规范与常用CSS代码集合

    编辑 | web前端开发 来源 | web前端开发 我们在用html+css进行网页的排版布局时,经常会遇到CSS命名,如果是在团队多人协作开发时,团队里都会有自己的命名规范与要求. 但如果是自己在个 ...

  6. html表格字体格式转换,【转】常用HTML代码速查表

    在搏客中比较常用的代码 一.美化文字的代码: 1.文字间换行:文字内容 文字内容 2.一个段落: 文字内容 3.字体加粗:文字内容 4.字体加大:文字内容 5.文字标题: 从一号标题H1到六号标题H6 ...

  7. Wordpress模板主题中functions.php常用功能代码与常用插件[ 后台篇](持续收集整理)

    用Wordpress建站的初学者一定会需要用到的Wordpress模板主题中functions.php常用功能代码与常用插件.慢慢持续收集整理....... 目录 一.Wordpress模板主题中fu ...

  8. WEB编程开发常用的代码[转]

    转自:http://blog.csdn.net/goaler/archive/2005/01/13/251090.aspx 1. ASP与Access数据库连接: dim conn,mdbfile  ...

  9. 建网站常用HTML代码

    建网站常用HTML代码 如果你想使用某种颜色,取得它的颜色值即可.比如,您想改变某些文字的颜色,您可以使用下面的代码: <font color=#ffc060 size=3 face=" ...

最新文章

  1. 105、Replicated Mode VS Global Mode (Swarm12)
  2. 3306 端口 要不要修改_zabbix 自动发现并监控所有端口
  3. Org设置让DataLoader导入数据时能导入创建日期
  4. access mysql 同步_使ACCESS数据库保持同步
  5. SSM整合时配置文件的编写
  6. 作者招募 | 加入PaperWeekly,让你的文字被更多人看到
  7. arm 架构_ARM发布A78增强版大核架构:性能怪兽
  8. CodeSmith 5.0工具实例篇系列4——根据表生成修改的存储过程,针对MS Sqlserver
  9. java json重命名,eclipse中java变量怎么变成json格式的编码?
  10. 详解Python线程对象daemon属性对线程退出的影响
  11. 青岛农行开始推广数字人民币钱包
  12. AJAX在VS2005下的基本使用第一篇
  13. CAS配置数据库进行用户验证
  14. 可以嵌入ppt的课堂点名器_宏大智慧课堂支招:孩子和学霸的差距,就在课上课下55分钟里...
  15. 域名抢注代码_如何停止域名抢注攻击
  16. 【lua语言从青铜到王者】第二篇:开发环境搭建+3种编辑器使用示例
  17. 操作系统镜像资源下载
  18. 网吧无盘系统服务器安装,网吧网络无盘系统的安装方法
  19. 这家为AI for Science而生的新研究院,要让科研进入“安卓模式”
  20. 杰里AC695N开发详解汇总(持续更新中)

热门文章

  1. 如何升级成鸿蒙,如何将自己的华为手机升级成鸿蒙系统
  2. sql语句优化之一:尽量使用索引避免全表扫描
  3. SpringMVC中使用@ResponseBody注解标注业务方法
  4. 数据在市场运营中的应用
  5. 2022年中国在线视频行业研究报告
  6. 作者:​光亮(1982-),男,博士,华为技术有限公司高级标准经理。
  7. 2016第三届科学数据大会——科学数据与创新发展
  8. 作者:叶郁文,男,中兴通讯股份有限公司产品规划部长。
  9. 【计算机网络】链路与连通
  10. 动态规划求解疯狂的采药问题(洛谷P1616题题解,Java语言描述)