在对话框中有一滑动条,鼠标拖动滑动条,执行拖动函数,同时鼠标显示忙用5秒,在这5秒中如果再次在滑动条上点击鼠标,如何让鼠标在5秒中之内的点击失效。及在这5秒内如何截获鼠标消息?

解决方案 »

  1.   

    to   hongtu (鸢儿)  :
    因为鼠标的消息这时是存放在消息队列中的,你可以鼠标光标恢复之前用peekMessage找到鼠标消息,然后处理掉:)
      

  2.   

    用  AfxGetApp()->BeginWaitCursor();让光标处于等待状态,就可以点击了无效完成后再 AfxGetApp()->EndWaitCursor();
    或在父类中响应    类似下面BOOL CSaimEdit::PreTranslateMessage(MSG* pMsg) 
    {
    if( StopEnterKey == TRUE)
    {
    if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN)
    {
    GetParent()->PostMessage(MSG_ENTERKEY_DOWN,0,0);  
    return TRUE;
    }
    }
    // be a good citizen - call the base class
    return CEdit::PreTranslateMessage(pMsg);
    }
      

  3.   

    如果要从消息队列抓取得话,建议使用GetMessage(); AfxGetApp()->BeginWaitCursor();
     AfxGetApp()->EndWaitCursor();
    方法可行,但是好像只能使用沙漏一种图标
      

  4.   

    处于这种状态下,点击鼠标就无效了,你可以试试   daniceexiedong(danice) 
    最多也就是处理完了 EndWaitCursor 再处理
      

  5.   

    换一个思路,让控件失效5秒,把它Disabled掉,任何被Disabled的控件都不会接受鼠标输入。