描述:
我在将acitvex 插入到IE 里面后,拉动滚动条,当acitvex 控件有部分被IE 覆盖后控件的绘制出了问题.我自己在ondraw 里面的代码
void CCimPlayerCtrl::OnDraw(
CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
// TODO: Replace the following code with your own drawing code.
CDC mdc;
CBitmap *oldBmp;
mdc.CreateCompatibleDC( pdc );
oldBmp = mdc.SelectObject( &bmpPhoneFace );//已装载的bmp
pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
pdc->BitBlt(rcBounds.left, rcBounds.top, rcBounds.Width(), rcBounds.Height(), &mdc, 0 , 0, SRCCOPY );
mdc.SelectObject(oldBmp);
mdc.DeleteDC();
}
在ie 里面的测试脚本:
<HTML>
<HEAD><TITLE>ActiveX Sample</TITLE></HEAD>
<BODY>
<OBJECT
ID="CimPlayer"
CLASSID="clsid:521CC78C-EAF7-47FE-94B8-609D8FF6D421"
WIDTH=253
HEIGHT=442
>
</OBJECT>
</BODY>
</HTML>
另:我用Activex Control pad 把msdn 自带的 circ 加到IE 里面也有类似问题.
那为大大帮忙解答一下.
解决方案1:
FIX: MFC ActiveX controls paint incorrectly when scrolling the HTML page
http://support.microsoft.com/kb/233391