GUI 剖析之 键盘方向键控制鼠标移动的实现

本文详细阐述了如何通过键盘的上下左右方向键来控制鼠标移动的实现过程,包括事件处理、坐标转换以及边界限制等关键步骤。

键盘方向键控制鼠标移动的实现

 

static int repeat=0;

POINT ptCursor;

RECT rect;

case WM_KEYDOWN:

                   if(wParam!=VK_LEFT&&wParam!=VK_RIGHT&&wParam!=VK_UP&&wParam!=VK_DOWN)

                            break;

                   GetCursorPos(&ptCursor);

                   ScreenToClient(hWnd,&ptCursor);

                   repeat+=3;

 

 

                   switch(wParam)

                   {

                   case VK_LEFT:

                            ptCursor.x-=repeat;

                            break;

                   case VK_RIGHT:

                            ptCursor.x+=repeat;

                            break;

                   case VK_UP:

                            ptCursor.y-=repeat;

                            break;

                   case VK_DOWN:

                            ptCursor.y+=repeat;

                            break;

                   default:

                            return(NULL);

                   }

        

 

 

                   GetClientRect(hWnd,&rect);

                   if(ptCursor.x>=rect.right)

                            ptCursor.x=rect.right-1;

                   else if(ptCursor.x<rect.left)

                            ptCursor.x=rect.left;

                   if(ptCursor.y>=rect.bottom)

                            ptCursor.y=rect.bottom-1;

                   else if(ptCursor.y<rect.top)

                            ptCursor.y=rect.top;

                   ClientToScreen(hWnd,&ptCursor);

                   SetCursorPos(ptCursor.x,ptCursor.y);

         case WM_KEYUP:

                   {

                            repeat=10;

                            break;

                   }

                   break;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值