如题,在WINXP上托盘闪动正常,但是在WIN2000系统下,托盘图标被修改以后不闪动,断调 OnTimer()正常调用。。鼠标放在托盘图标区域偶尔闪动,高分求教。。

解决方案 »

  1.   

    可能OnTimer()的定时不精确,没有精确按照指定时间执行;另外是否是OnTimer()内函数重入的问题!
      

  2.   

    if( nIDEvent == IDT_TIMER_MESSAGE_TRAY ){
    if( !m_lpChatBuffer ){
    MsgAnimateTrayIcon(FALSE);
    return ;
    }
    CChatBufferContext* lpContext = m_lpChatBuffer->FrontMessage();
    if( !lpContext ){
    MsgAnimateTrayIcon(FALSE);
    return;
    }
    HICON hIcon = NULL;
    if( !lpContext->m_hIcon )
    hIcon = m_lpChatBuffer->GetTrayIcon();
    else
    hIcon = lpContext->m_hIcon;
    //
    if( lpContext->FlashIcon() % 2 )
    hIcon = NULL; m_tray_sys.ModifyTray(NULL,hIcon,NIF_ICON);
    return;
    }
    XP 上面是正常的。
      

  3.   

    看了一下,逻辑是对的 ICON是修改能成功,但是不能成功的HIDE。必须要把鼠标移上去才能HIDE