C++使用IEWebBrowser2控件,如何解决拖动窗口闪烁的问题。
使用 CAxWindow 加一个 IEWebBrowser2,偌IE中播放电影,那么则再拖动窗口的过程当中,整个IEWebBrowser会闪烁的很厉害。其实在浏览非电影页面也闪烁,只是没有那么严重而已,有什么好的解决办法么?多谢了。。
[解决办法]
在OnEraseBkgnd写一段,确定WEBBROWSER所在的区域,然后将这个区域InvalidateRgn掉,就OK了,我这是这么干的。
- C/C++ code
CPaintDC dc(this); CRect rect; GetClientRect(&rect); CRgn rgnWeb,rgnUpdate; if ( !rect.EqualRect(&rcPreSize) )//rcPreSize,CRect类型的窗口成员,用于记录窗口大小。如果窗口没改变大小将不挖坑 { //PS:计算无效区域 CRect rectAll; GetWindowRect(&rectAll); rgnUpdate.CreateRectRgn(/*写上窗口区域相关的数据*/); rgnWeb.CreateRectRgn(/*WEBBROWSER区域的数据*/); rgnUpdate.CombineRgn(&rgnUpdate,&rgnWeb,RGN_DIFF); InvalidateRgn(&rgnUpdate,FALSE); } rgnWeb.DeleteObject(); rgnUpdate.DeleteObject(); GetClientRect(&rcPreSize); return TRUE;