AnimateWindow导致重绘的控件不显示的问题
AnimateWindow
API能在显示与隐藏窗口时能产生特殊的效果。有两种类型的动画效果:滚动动画和滑动动画。
如果当一个控件重载OnPaint实现重绘的时候,使用AnimateWindow加载动画的过程中就会导致窗口变成灰色,失去重绘的效果。这是因为WM_PRINT和WM_PRINTCLIENT这两个消息导致的,只有重载这两个消息,就会解决这一问题。
LRESULT CXXXCtrl::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
// TODO: 在此添加专用代码和/或调用基类
if (message == WM_PRINT || message == WM_PRINTCLIENT)
{
CDC dc;
dc.Attach((HDC)wParam);
// Do Something
// ......
dc.Detach();
return 0;
}
return CWnd::WindowProc(message, wParam, lParam);
}