我现在在屏幕上画了一些点,例如001,002,003...... 我现在要按键盘的K键,使鼠标的指针从001按顺序跳到002,003(每按一下K键,跳动一次).
  我不知道怎么做,各位大虾,有劳!

解决方案 »

  1.   

    1 你画点的时候记住每个点的位置
      把点的坐标转为CRect类型
    2 在PreTranslateMessage函数里处理
    PreTranslateMessage(MSG* pMsg)
    {
        if(pMsg->message==WM_KEYDOWN)
        {
            switch(pMsg->wParam)
            {
               case: 'K'
                  ClipCursor(&rt);//rt是Rect类型,函数就是限制鼠标的范围
                   ......//循环改变rt的位置
      

  2.   

    laiyiling只是限制鼠标的位置,并不能给人一种某个点被选中的感觉
    要选中某个点,只能动态的在选中的点周边画一个矩形框,或者圆什么的
    选中下一个点的时候,在四周画框
    同时还要把上一个点的四周的框给擦掉
    这只要记住原来的框的位置坐标,和那个点的坐标
    重绘那块区域,不画框,只画点就可以了
      

  3.   

    可以在laiyiling的代码中加一函数CDp(CPoint point)
      

  4.   

    好像是mouseEvent这类的函数,效果如同鼠标事件
      

  5.   

    如果要模拟鼠标点击用mouse_event
    mouse_event最好配合SetCursorPos(x,y)函数一起使用,mouse_event有五个参数,第一个为选项标志,为MOUSEEVENTF_LEFTDOWN时表示左键按下为MOUSEEVENTF_LEFTUP表示左键松开,向系统发送相应消息。第二三个参数分别表示x,y 相对位置,一般可设为0,0,第四五个参数并不重要,一般也可设为0,0。要得到mouse_event函数的更详细的用法,可以查阅msdn。 
    下面是关于mouse_event的示例代码: 
    POINT lpPoint; 
    GetCursorPos(&lpPoint); 
    SetCursorPos(lpPoint.x, lpPoint.y); 
    mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); 
    mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); 
      注意,模拟鼠标事件,要注意还原,即按完键要松开,一个down对应一个up;不然可能影响程序的功能。
      

  6.   

    laiyiling说得很好,k键消息就是这样处理的,如果定位鼠标的要求不能满足,,可以根据需要,修改一下!
      

  7.   

    每个点的坐标你在绘制时应该是已知的,保存在如下数组中
    CPoint pts[MAXPOINTS];  //保存的是Client坐标处理WM_KEYDOWN 消息CPoint pt;
    if(wParam == 'K' || wParam == 'k')
    {
       pt = pts[nCurrPointIndex++];
       ClientToScreen(&pt);
       SetCursorPos(pt.x,pt.y);
       if(nCurrPointIndex>=MAXPOINTS)
          nCurrPointIndex = 0;
    }
      

  8.   

    把royer的代码改一下,CPoint pts[MAXPOINTS];       //保存的是Client坐标
    int nCurrPointIndex = 0;     //当前点的序号处理WM_KEYDOWN 消息CPoint pt;
    if(wParam == 'K' || wParam == 'k')
    {
       nCurrPointIndex++;
       if(nCurrPointIndex >= MAXPOINTS)
          nCurrPointIndex = 0;
       pt = pts[nCurrPointIndex];
       ClientToScreen(&pt);
       SetCursorPos(pt.x,pt.y);
    }
      

  9.   

    我现在用的IDE是BC5.02,编程用的是C(SDK),平台是win2k,我现在程序是在屏幕上画点(已完成),并且记下了每一点的做标x,y值,
    问题是:我把鼠标的箭头放在一个点上,然后按下键盘上的 K 键,这时鼠标的箭头要马上跳到下一点上。再按一下 K 键,鼠标的箭头跳
    到下一个点上,该怎么做?难点:鼠标控制是win2k所控制,我用的SDK,我怎么能让鼠标的箭头让我来控制。最好给我一个例子。