用ShowWindow(SW_HIDE)只能把窗口隐藏,没有类似QQ那样的动画效果。请高手赐教!!!

解决方案 »

  1.   

    http://www.codeproject.com/shell/ss_trayicon.asp
      

  2.   

    http://www.codeproject.com/shell/ss_trayicon.asp
    没有最小化窗口的功能
      

  3.   

    要实现托盘动画,可以写一个线程,循环显示多个图标,这样就实现了动画效果,这其中我用了一个CEvent变量g_event,这样需要终止显示动画的时候,设置这个对象为有信号就可以终止线程了IDR_MAINFRAME,IDI_WORK0都是图标ID,SLEEP()时间自己设置,cSystray为一个实现系统托盘功能的类。
    UINT ShowIconProc(LPVOID pParam)
    {

    int i=0;
    while (!::WaitForSingleObject(g_event,0)==WAIT_OBJECT_0)
    {
    if (i==0)cSystray.SetIcon(IDR_MAINFRAME);
    else if (i==1)cSystray.SetIcon(IDI_WORK0);
    else  if (i==2) cSystray.SetIcon(IDI_WORK1);
    else if (i==3) cSystray.SetIcon(IDI_WORK2);
    else cSystray.SetIcon(IDI_WORK3);

    if (i==4)i=-1;
    i++;
    Sleep(360);

    }
    return 0; 
    }
      

  4.   

    http://www.copathway.com/vchelp/zart/ani_show_wnd.asp?type_id=71&class_id=1&cata_id=2&article_id=58熟悉一个API函数DrawAnimatedRects,这个函数可以在你指定的两个矩形间以动画的效果画出一个移动的窗口,一个例子就是窗口在最大化/最小化时的动画效果,函数原型如下:BOOL WINAPI DrawAnimatedRects
    (
    HWND hwnd,  // 窗口句柄
    int idAni,  // 动画效果标记,保留并只能为0
    CONST RECT *lprcFrom,  // 起始窗口矩形
    CONST RECT *lprcTo  // 结束时窗口矩形
    );