《Windows程序设计》之鼠标2

来源:互联网 发布:免费ddos攻击软件 编辑:程序博客网 时间:2024/05/22 03:08
case WM_SIZE:cxBlock=LOWORD(lParam)/DIVISIONS;cyBlock=HIWORD(lParam)/DIVISIONS;return 0;//以下代码,我觉得没有用到,于是注释/*case WM_SETFOCUS:ShowCursor(TRUE);return 0;case WM_KILLFOCUS:ShowCursor(FALSE);return 0;*///下面是键盘操作触发消息case WM_KEYDOWN://获取点坐标GetCursorPos(&point);//屏幕坐标转窗口坐标ScreenToClient(hwnd,&point);//这个地方看了好长时间才明白过来的。//为了保证得到的x,y在0与DIVISIONS-1之间。x=max(0,min(DIVISIONS-1,point.x/cxBlock));y=max(0,min(DIVISIONS-1,point.y/cyBlock));switch(wParam){//PageUpcase VK_UP:y--;break;//PageDowncase VK_DOWN:y++;break;//Leftcase VK_LEFT:x--;break;//Rightcase VK_RIGHT:x++;break;//Homecase VK_HOME:x=y=0;break;//Endcase VK_END:x=y=DIVISIONS-1;break;//回车或空格case VK_RETURN:case VK_SPACE://发送WM_LBUTTONDOWNSendMessage(hwnd,WM_LBUTTONDOWN,MK_LBUTTON,MAKELONG(x*cxBlock,y*cyBlock));break;}//上面x,y经过相应的变化,重新计算//比如在最左侧时,x为0,x--后,经过下面的计算,x=9,光标就移到最右边了。//真心学习了.....x=(x+DIVISIONS)%DIVISIONS;y=(y+DIVISIONS)%DIVISIONS;point.x=x*cxBlock+cxBlock/2;point.y=y*cyBlock+cyBlock/2;//转换为屏幕坐标,然后设置光标ClientToScreen(hwnd,&point);SetCursorPos(point.x,point.y);return 0;

代码是CHECKER2中部分,与CHECKER1相比,加入了键盘控制,个人认识可以学习的就是上面我加入注释的这一些了,一些常规操作的实现方法感觉还是不错的。

原创粉丝点击