HTMLページをスクロールしたときに MFC ActiveX コントロールが正しく描画されない件は、
<http://support.microsoft.com/kb/233391/en-us>で既知の問題として取り上げられています。
回避策(workaround)の2つ目に記述されているように、
BOOL CmfcaxCtrl:
nSetObjectRects(LPCRECT lpRectPos, LPCRECT lpRectClip)
{
return TRUE;
}
と施しても何も解決できなかったため、
BOOL CmfcaxCtrl:
nSetObjectRects(LPCRECT lpRectPos, LPCRECT lpRectClip)
{
HWND hwnd;
// コンテナのウィンドウハンドルを取得
if (m_pInPlaceSite != NULL) {
m_pInPlaceSite->GetWindow(&hwnd);
}
InvalidateRect(hwnd, NULL, TRUE);
UpdateWindow(hwnd);
return TRUE;
}
上記のようにコンテナを描画させることで、HTMLページをスクロールしても描画が正しく行われるようになりました。
この対策によるコンテナへの影響度、修正の妥当性などご存知の方はお知らせ下さい。