win32编程键盘与鼠标

case WM_CHAR:
		switch(wParam)
		{
		case 'a':
			aa++;
			InvalidateRect(hWnd,NULL,TRUE);
                }
		break;

当接收到字符,如果是a,进行操作,如果不是字符,标识用虚拟键盘,如空格是VK_SPACE。

当敲击键盘a时依次产生3个消息:

WM_KEYDOWN

WM_CHAR

WM_KEYUP

鼠标捕获:

case WM_MOUSEMOVE:
	aa=LOWORD(lParam);
	bb=HIWORD(lParam);
	InvalidateRect(hWnd,NULL,TRUE);
	break;

这个程序中aa,bb得到鼠标当前的坐标,当鼠标移动时捕获。

另外还有这些

WM_LBUTTONDOWN 按下左键

WM_RBUTTONDOWN  按下右键

。。。

#define WM_MOUSEFIRST                   0x0200
#define WM_MOUSEMOVE                    0x0200
#define WM_LBUTTONDOWN                  0x0201
#define WM_LBUTTONUP                    0x0202
#define WM_LBUTTONDBLCLK                0x0203   //双击
#define WM_RBUTTONDOWN                  0x0204
#define WM_RBUTTONUP                    0x0205
#define WM_RBUTTONDBLCLK                0x0206  //双击
#define WM_MBUTTONDOWN                  0x0207
#define WM_MBUTTONUP                    0x0208
#define WM_MBUTTONDBLCLK                0x0209  //双击
如果要捕获双击,则要修改:

wndclass.style=CS_HREDRAW | CS_VREDRAW | CS_DBLCKS;


你可能感兴趣的:(win32编程键盘与鼠标)