关于窗口缩放时刷新的问题
我在一个支持缩放的对话框CTestDlg中创建了一个派生自CWnd的窗口CThumbnailView(class CThumbnailView: public CWnd,变量为CThumbnailView m_view;),在CThumbnailView的OnPaint中绘制了一些东西,在CTestDlg的OnSizing中使用MoveWindow使CThumbnailView跟首对话框一些缩放。
void CTestDlg::OnSizing(UINT fwSide, LPRECT pRect)
{
CDialog::OnSizing(fwSide, pRect);
// TODO: Add your message handler code here
CRect rcClient;
GetClientRect( &rcClient );
CRect rcView;
rcView = rcClient;
rcView.right -= 50;
rcView.bottom -= 50;
m_view.MoveWindow( rcClient );
}
但在缩放时,CThumbnailView闪的厉害,我用CListCtrl测试后,发现CListCtrl跟着对话框缩放时不会闪,我把
m_view.MoveWindow( rcClient );
改成下面的
m_view.MoveWindow( rcClient, FALSE );
RedrawWindow( rcClient, NULL, RDW_INVALIDATE | RDW_UPDATENOW | RDW_NOCHILDREN );
,虽然不闪了,但这是在CTestDlg中设置的,我想使我的CThumbnailView直接就支持缩放时不闪的特性。请大家支人招。