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);
}

标签: AnimateWindow, AnimateWindow bug, AnimateWindow 控件不显示

添加新评论