zoukankan      html  css  js  c++  java
  • CDHtmlDialog加壳HTML5页面跳转错误解决(原)

    HTML5+Native方式开发应用程序,遇到的一个问题:HTML5实现的阅读器在打开文档时,CDHtmldialog类的跳转函数报错,忽略错误程序可以正确执行。

    错误代码:OnNavigateComplete函数的ASSERT(m_spHtmlDoc==NULL);

    跟踪分析:_OnBeforeNavigate2和_OnNavigateComplete2总是成对执行,_OnBeforeNavigate2函数中有m_spHtmlDoc = NULL;语句,所以不会出现上述断言错误。而在点击html5按钮打开文档时,程序直接跳到了_OnNavigateComplete2而没有执行_OnBeforeNavigate2。(具体是如何调用的,没法往下跟了)

    问题解决:重写_OnBeforeNavigate2和_OnNavigateComplete2函数,执行代码内容不变,添加一变量进行控制,使得两个函数成对执行。解决

    后来测试发现直接屏蔽打开文档后_OnNavigateComplete2函数的执行也不会报错,而且未发现功能缺失。

    头文件:

    DECLARE_EVENTSINK_MAP()
    void _OnBeforeNavigate2(LPDISPATCH pDisp, VARIANT FAR* URL, VARIANT FAR* Flags, VARIANT FAR* TargetFrameName,
    VARIANT FAR* PostData, VARIANT FAR* Headers, BOOL FAR* Cancel);
    void _OnNavigateComplete2(LPDISPATCH pDisp, VARIANT FAR* URL);

    源文件:

    源文件:
    BEGIN_EVENTSINK_MAP(CBJCAPDFJSClientDlg, CDHtmlDialog)
    ON_EVENT(CBJCAPDFJSClientDlg, AFX_IDC_BROWSER, 250 /* BeforeNavigate2 */, _OnBeforeNavigate2, VTS_DISPATCH VTS_PVARIANT
    VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PBOOL)
    ON_EVENT(CBJCAPDFJSClientDlg, AFX_IDC_BROWSER, 252 /* NavigateComplete2 */, _OnNavigateComplete2, VTS_DISPATCH VTS_PVARIANT)
    END_EVENTSINK_MAP()

    重写就行了

  • 相关阅读:
    C++随笔
    STM32调试总结
    摄像头CMOS和CCD的比较
    modelsim 中 WAVE窗口中能不能只显示变量名,而不显示路径
    modelsim仿真xilinx mig ip core相关问题
    modelsim仿真vivado自动化脚本
    modelsim无法识别include文件的解决方法
    UVM的类库
    uvm
    uvm
  • 原文地址:https://www.cnblogs.com/jzxx/p/5630611.html
Copyright © 2011-2022 走看看