我通过串口发送命令,当按钮按下时发送开始命令,弹起时发送停止命令,请问哪位知道如何实现?

解决方案 »

  1.   

    重载该窗口的PreTranslateMessage函数,
    另外,将该按钮定义为一个CButton的变量,假设为CButton m_btnComm;
    代码如下:
    BOOL CSettingDlg::PreTranslateMessage(MSG* pMsg) 
    {
      //鼠标按下或者松开事件
      if( pMsg->message == WM_LBUTTONDOWN || pMsg->message == WM_LBUTTONUP )
      {
        CPoint pnt;
        GetCursorPos( &pnt );//光标位置
        CRect rectBtn;
        m_btnComm.GetWindowRect( &rectBtn );
        if( rectBtn.PtInRect( pnt ) ) //光标是否在按钮范围内
        {
          if( pMsg->message == WM_LBUTTONDOWN )
          {
           //做你想做的事情,发送
          }
          else if( pMsg->message == WM_LBUTTONUP )
          {
           //做你想做的事情,结束发送
          }
        }
      }
      return CDialog::PreTranslateMessage(pMsg);
    }