读书人

C++使用IEWebBrowser2控件怎么解决拖

发布时间: 2012-01-19 20:57:58 作者: rapoo

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; 

读书人网 >VC/MFC

热点推荐