用了WM_KICKIDLE 消息后,任务管理器里显示我的进程CPU占有率达到50%左右,去掉这个消息就恢复到正常1%左右,这是怎么回事啊?

解决方案 »

  1.   

    LRESULT CDlgMainSheet::OnKickIdle(WPARAM wParam, LPARAM lParam)
    {
    // 更新界面时间间隔不能太小
    DWORD dwNow = GetTickCount ();
    static DWORD dwStartTime = 0;
    if ( dwNow - dwStartTime < 100 ) return TRUE;
    dwStartTime = dwNow; UpdateDialogControls(this, FALSE);
    m_btnVolumeControls.EnableWindow ( g_bTargetProcessValid );
    return TRUE;
    }
      

  2.   

    谢谢各位,已经找到问题所在了,正确的代码如下:LRESULT CDlgMainSheet::OnKickIdle(WPARAM wParam, LPARAM lParam)
    {
    // 更新界面时间间隔不能太小
    DWORD dwNow = GetTickCount ();
    static DWORD dwStartTime = 0;
    if ( dwNow - dwStartTime < 100 ) return TRUE;
    dwStartTime = dwNow; UpdateDialogControls(this, FALSE);
    m_btnVolumeControls.EnableWindow ( g_bTargetProcessValid );
    return Default();
    }