程序中在使用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); }
}