WM_CREATE 窗口过程收到的第一条信息 WM_COMMAND 菜单按下 WM_DESTROY 正在销毁窗口 WM_KEYDOWN lParam含义为虚拟键码“A”(0X41) wparm (这个对)包含按下键的ASCII码 键盘按下产生消息 WM_KEYUP lParam含义为虚拟键码“A”(0X41) wparam 包含按下键的ASCII码 按下后放开才产生消息 WM_SYSKEYDOWN lParam键盘放开 WM_CHAR lParam含义为 ANST码“a”(0X61) wparam 包含按下键的ASCII码 WM_TIMER 定时器消息 WM_PAINT 重绘消息 WM_QUIT 退出消息 按键产生的字符消息 WM_CHAR 当用户按下一个键时,Windows将 WM_KEYDOWN或WM_SYSKEYDWN 消息放入! 当该键被释放时,Windows把WM_KEYUP或WM_SYSKEYUP消息放入! 非系统键击 WM_KEYDOWN WM_KEYUP 系统键击 WM_SYSKEYDWN WM_SYSKEYUP 鼠标消息 按下 弹起 双击 左键 WM_LBUTTONDOWN WM_LBUTTONUP WM_LBUTTONDBLCLK 中键 WM_MBUTTONDOWN WM_MBUTTONUP WM_MBUTTONDBLCLK 右键 WM_RBUTTONDOWN WM_RBUYYONUP WM_RBUTTONDBLCLK WM_MOUSEMOVE 鼠标移动 发送这些消息时,lParam参数包含了鼠标的位置坐标,可以这样读出坐标信息。 xPos=LOWORD(lParam) yPos=HIWORD(lParam) 这些坐标都是以客户区的左上角为原点,向右是X轴正方向,向下是Y轴正方向。 ClientToScreen函数可以把坐标转换为以屏幕的左上角为原点的坐标。 BOOL ClientToScreen(HWND hWnd,LPPOINT lpPoint); BOOL ScreenToClient(HWND hWnd,LPPOINT lpPoint); 同样 ScreenToClient函数又可以把坐标转行回来。 lpPoint参数指向POINT结构的指针,把要转化的坐标信息写入lpPoint参数指向的内存,Windows把转化后的结果也返回到这块内存中。 wParam 参数包含鼠标按钮的状态 MK_LBUTTON 左键按下 MK_MBUTTON 中键按下 MK_RBUTTON 右键按下 按下鼠标左键:WM_LBUTTONDOWN 拖动鼠标移动:WM_MOUSEMOVE 放开鼠标左键:WM_LBUTTONUP MK_SHIFT <Shift>键按下 MK_CONTROL <Ctrl>键按下 例如,收到 WM_LBUTTONDOWN消息时,如果wParam&MK_SHIFT的值为TRUE,就会知道当单击左键时, <Shift>键也被按下了! WM_SIZE 窗口尺寸改变 lParam 存放窗口大小 低位字段是 宽度 高位是高度 LOWORD HIWORD WM_MOVE 窗口移动时 /////////////////////////////////// 滚动条 WM_VSCROLL 垂直滚动条 WM_HSCROLL 水平滚动条 SB_ENDSCROLL 鼠标点击滚动条移动到位置后在放开就会发出这个消息 SB_LINEDOWN 滚动条向下移动一行 SB_LINEUP 滚动条向上移动一行 SB_PAGEDOWN 滚动条向下翻一页 case SB_PAGEUP 滚动条向上翻一页 将鼠标放在滑块上然后按下鼠标时,可以移动滑块,这将会产生SB_THUMBTRACK和SB_THUMBPOSITION消息当wParam低位字段是SB_THUMBTRACK时,wParam的高位字是用户拖动滑块的当前位置。这个位置处于滚动条范围的最小值和最大值之间。当wParam的低位字是SB_THUMBPOSITION时wParam的高位字是用户松开鼠标键时滑块的最终位置。对于其他滚动条动作,wParam的高位字应该被忽略。 高低 HIWORD LOWORD 1 VK_LBUTTON 鼠标左键 2 VK_RBUTTON 鼠标右键 3 VK_CANCEL Ctrl+Break(通常不需要处理) 4 VK_MBUTTON 鼠标中键 8 VK_BACK Backspace 9 VK_TAB Tab 12 VK_CLEAR Num Lock关闭时的数字键盘5 13 VK_RETURN Enter(或者另一个) 16 VK_SHIFT Shift(或者另一个) 17 VK_CONTROL Ctrl(或者另一个) 18 VK_MENU Alt(或者另一个) 19 VK_PAUSE Pause 20 VK_CAPITAL Caps Lock 27 VK_ESCAPE Esc 32 VK_SPACE Spacebar 33 VK_PRIOR Page Up 34 VK_NEXT Page Down 35 VK_END End 36 VK_HOME Home 37 VK_LEFT 左箭头 38 VK_UP 上箭头 39 VK_RIGHT 右箭头 40 VK_DOWN 下箭头 41 VK_SELECT 可选 42 VK_PRINT 可选 43 VK_EXECUTE 可选 44 VK_SNAPSHOT Print Screen 45 VK_INSERT Insert 46 VK_DELETE Delete 47 VK_HELP 可选 48~57 主键盘上的0~9 48 48 主键盘上的0 49 49 主键盘上的1 50 50 主键盘上的2 51 51 主键盘上的3 52 52 主键盘上的4 53 53 主键盘上的5 54 54 主键盘上的6 55 55 主键盘上的7 56 56 主键盘上的8 57 57 主键盘上的9 65~90 A~Z 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 VK_LWIN 左Windows键 92 VK_RWIN 右Windows键 93 VK_APPS Applications键 96~105 VK_NUMPAD0~VK_NUMPAD9 Num Lock打开时数字键盘上的0~9 106 VK_NULTIPLY 数字键盘上的* 107 VK_ADD 数字键盘上的+ 108 VK_SEPARATOR 可选 109 VK_SUBTRACT 数字键盘上的- 110 VK_DECIMAL 数字键盘上的. 111 VK_DIVIDE 数字键盘上的/ 112~135 VK_F1~VK_F24 功能键F1~F24 144 VK_NUMLOCK Num Lock 145 VK_SCROLL Scroll Lock