我现在要做一个界面(MFC dialog),界面中有两个Edit控件,两个Button控件
当鼠标选择Edit1时,按Button1使得Edit1中数据自动增加,单点增加Button,Edit1单个自动增加,长按增加Button,Edit1一直增加,按减少Button时,如增加Button功能,不过自动减少。当鼠标选择Edit2时,按增加Button和减少Button,Edit2变化与Edit1相同。

解决方案 »

  1.   

    单按时简单,长按时得恐怕得响应按键消息(响应鼠标按键消息可能不行,有可能只响应一次就不响应了),然后再分析是是不是你按下的键,可以试试响应类似WM_CHAR键试试
      

  2.   

    长按我实现了,以消息机制弄的,但是长按和短按同时存在我实现不了,而且主要的是edit改变时我不知道应该增加哪个edit变量,我给每个edit定义了一个CEdit类型的变量 m_edit1和m_edit2,通过变量增加减少改变变量,然后用m_edit1和m_edit2显示到edit框中。但是我怎么知道选中的是哪个框呢?长按和短按又怎么同时实现呢?
      

  3.   

    短按就一个鼠标按下弹起事件,长按的话可以模拟下,启动个定时器,在鼠标按下时启动第一个,一秒后还没弹起(GetTickCount可以算出来),就认为是长按,每隔几十ms响应次消息就够了。但是我怎么知道选中的是哪个框呢?
    ---------
    点了哪个按钮总知道吧,知道了哪个按钮就知道对应的edit
      

  4.   


    额???不对啊,我两个按钮对两个edit框都可以控制的,我本来想在鼠标点edit的时候用好像有一个叫chageforce的消息(具体消息事件没记住)获得edit的ID,但是没成功。无法获得ID。
      

  5.   

    想知道当前点了哪个edit 可以捕获光标位置
    用GetFocus()获取焦点位置
      

  6.   

    我建议设置一个成员变量int* m_pValue;当Edit1获得焦点时:m_pValue=&m_Edit1;
    当Edit2获得焦点时:m_pValue=&m_Edit2;
    其他控件(除了两个按钮)获得焦点 m_pValue=NULL;点击增加按钮的时候(*m_pValue)++;UpdateData(FALSE);
    点击减少按钮的时候(*m_pValue)--;UpdateData(FALSE);
      

  7.   

    声明个变量,在Edit获得焦点时,记录是哪个Edit获得焦点。
      

  8.   

    我现在用SetFouce()->GetDlgItemID()获得了edit的id,也实现了自动增长和减少的功能,但是怎么让一个按键既能实现长按,又能实现短按功能呢?长按我是做了一个类,类继承CButton类,然后重构LButtonDown和LButtonUp函数  
    用消息机制做的,没100ms发一次消息,这样做的后果就是当短按的时候必须小于100ms,否则就会出现长按现象。