解决使用CHtmlView后出现的COleException异常

    技术2025-03-27  10

    程序中在使用CHtmlView类来实现浏览器功能时,在调整窗口大小时会窗口输出异常警告,例如我的出现的警告如下:

    Warning: constructing COleException, scode = DISP_E_MEMBERNOTFOUND ($80020003).htmltest.exe 中的 0x7c80bef7 处最可能的异常: Microsoft C++ 异常: 内存位置 0x0012de68 处的 COleException。Warning: constructing COleException, scode = DISP_E_MEMBERNOTFOUND ($80020003).htmltest.exe 中的 0x7c80bef7 处最可能的异常: Microsoft C++ 异常: 内存位置 0x0012de68 处的 COleException。

    这是CHtmlView在处理WM_SIZE消息时造成的,改写WM_SIZE消息后就可以解决此问题,如下:

    void CMyLogShView::OnSize(UINT nType, int cx, int cy){    CFormView::OnSize(nType, cx, cy);    //注意此处一定要是CFormView

        // TODO: 在此处添加消息处理程序代码    if (::IsWindow(m_wndBrowser.m_hWnd))     {         CRect rect;         GetClientRect(rect);         ::AdjustWindowRectEx(rect, GetStyle(), FALSE, WS_EX_CLIENTEDGE);        m_wndBrowser.SetWindowPos(NULL,             rect.left,             rect.top,             rect.Width(),             rect.Height(),             SWP_NOACTIVATE | SWP_NOZORDER);     }

    }

     

    最新回复(0)