在OnInitDailog里设一个定时器,间隔比如用50ms,在OnTimer时SetWindowPos(或者MoveWindow),然后增加尺寸,如果达到你期望的尺寸就KillTimer。

解决方案 »

  1.   

    TO azuo_lee() :一定要用定时器吗?我在这个函数里使用循环,结果没有动态效果,窗体还是和平常一样一下就显示出来了
    不知道什么原因,请指点
      

  2.   

    这个简单,我教你一种带动画效果的方法,可你一定要给我分呀!:)
    在你的对话框类的OnInitDialog函数中,reuturn之前加入这样的代码: ShowWindow(SW_HIDE);
    int cx = GetSystemMetrics(SM_CXSCREEN);
    int cy = GetSystemMetrics(SM_CYSCREEN);
    CRect rect(cx/2, cy/2, cx/2, cy/2);
    CRect dsRect;
    GetWindowRect(&dsRect);
    DrawAnimatedRects(GetSafeHwnd(), IDANI_CAPTION, rect, dsRect);
    ShowWindow(SW_SHOW);
    这样,就从屏幕的中间由小到大将你的窗口画出来了。
      

  3.   

    to  sam1111(我倒) :等我测试确定可以后一定给你分,OK?
      

  4.   

    AnimateWindow(hWnd,2000,AW_CENTER|AW_ACTIVATE);试试这个简单而奇妙的函数吧,包你满意。
    不过要稍微修改一下它的H文件,因为它是为64位操作系统作的,
    当然,32位系统绝对可以使用。