目前我有以下两点疑惑的地方:
一:程序一启动占用很多内存,最小化后占内存剧减,再还原,内存增大,但始终大不到开始运行的时候那么
大,请问这是为什么?举个例子来说:一程序启动的时候点内存5M,最小化后800K,再还原时变成1.5M,怎么
也大不到5M了。开始我还以我的程序有问题,可是用notepad做实验,也出现类似的现象。二:如何让隐藏的窗口内存占用量和最小化窗口时相当?
目前我的作法如下:
隐藏窗口时(正常工作):
AnimateWindow(m_hWnd, 500, AW_BLEND | AW_HIDE); //渐渐消失窗口
ShowWindow(SW_MINIMIZE); //有这一条,才能使程序的内存占用量最小
ShowWindow(SW_HIDE);可是显示窗口时就有问题了,应该怎么写呢?因为AnimateWindow函数只能对显示的窗口动态隐藏,对隐藏的窗口动态显示,不能对显示的窗口动态显示。
ShowWindow(...)//这里有什么语句能使窗口处于还原状态,但是是隐藏的。
               //不管怎么用ShowWindow函数,动态显示窗口的效果怎么也表现不出来!
AnimateWindow(m_hWnd, 250, AW_CENTER/*AW_BLEND*/); //用中心向外扩散的方式还原窗口
SetForegroundWindow();对于问题二,如果有别的方法让隐藏的窗口内存占用量和最小化窗口时相当,那也行,如果有其它办法,只需
如下:
隐藏窗口:
AnimateWindow(m_hWnd, 500, AW_BLEND | AW_HIDE); //渐渐消失窗口显示窗口:
AnimateWindow(m_hWnd, 250, AW_CENTER/*AW_BLEND*/); //用中心向外扩散的方式还原窗口
SetForegroundWindow();

解决方案 »

  1.   

    注意我一定要使用AnimateWindow来动画显示窗口,达不到这个要求就不要谈“让隐藏的窗口内存占用量和最小化窗口时相当”了,我也可以做到。
      

  2.   

    ShowWindow(...)// SW_RESOTRE 吧
    最小化后资源都保存到磁盘缓存了,即使再次显示也是当前窗口资源,菜单其他窗口等等没有显示的还没加载道内存。
      

  3.   

    to delphihero(阿蒙(C++)) 
    ShowWindow(...)// SW_RESOTRE 后,窗口已显示出来,再用AnimateWindow就没有效果了,因为AnimateWindow函数只能对显示的窗口动态隐藏,对隐藏的窗口动态显示,不能对显示的窗口动态显示!内存问题我想应该实际情况实际分析,我做的是个服务器,平时几乎都是托盘显示的,界面切换速度变慢对我来说是个小问题,因为客户很少要把窗口显示出来。