windows程序设计08.ppt
《windows程序设计08.ppt》由会员分享,可在线阅读,更多相关《windows程序设计08.ppt(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第4章 键盘及鼠标的消息响应董本志主要内容键盘输入的响应鼠标消息的响应键盘与鼠标的组合输入 一、键盘输入的响应一、键盘输入的响应 1、程序实例、程序实例2、Windows程序是如何获得键盘输入的程序是如何获得键盘输入的 键盘输入以消息消息的形式传递给程序的窗口消息处理程序。Windows用八种不同的消息来传递不同的键盘事件。程序可以忽略其中至少一半的消息而不会有任何问题。并且,在大多数情况下,这些消息中包含的键盘信息会多于程序所需要的。处理键盘的部分工作就是识别出哪些消息是重要的,哪些是不重要的。3、键盘消息3.1 WM_KEYDOWN 和 WM_KEYUP LRESULT CALLBACK
2、WindowProc(HWND hwnd,/handle to window UINT uMsg,/WM_KEYDOWN WM_KEYUPWPARAM wParam,/virtual-key code VK_F1 LPARAM lParam/key data );消息的处理过程主要是根据wParam中的键码进行处理。例:switch(uMsg)case WM_KEYDOWN:switch(wParam)case VK_LEFT:/动作;动作;return 0;VK_LEFT 25 LEFT ARROW key VK_UP 26 UP ARROW key VK_RIGHT 27 RIGHT AR
3、ROW key VK_DOWN 28 DOWN ARROW key(1)虚拟键码的定义)虚拟键码的定义 虚拟键码保存在WM_KEYDOWN、WM_KEYUP、WM_SYSKEYDOWN和WM_SYSKEYUP消息的wParam参数中。此代码标识按下或释放的键。(2)lParam信息信息 在按键消息WM_KEYDOWN、WM_KEYUP中,wParam消息参数含有上面所讨论的虚拟键码,而lParam消息参数则含有对了解按键非常有用的其它信息。lParam的32位分为6个字段,如图所示。(3)切换键信息)切换键信息 在处理按键消息时,可能需要知道是否按下了转换键(Shift、Ctrl和Alt)或开
4、关键(Caps Lock、Num Lock和Scroll Lock)。通过调用GetKeyState函数,就能获得此信息。SHORT GetKeyState(int nVirtKey);/virtual-key code nVirtKey VK_SHIFT shift键 VK_CONTROL CTRL键 VK_MENU ALT键 VK_CAPITAL CapsLock键 VK_LSHIFT 左shift键 VK_RSHIFT 右shift键 VK_LCONTROL VK_RCONTROL VK_LMENU VK_RMENU3.2 字符消息 WM_CHAR(1)消息顺序)消息顺序 因为Trans
5、lateMessage函数从WM_KEYDOWN和WM_SYSKEYDOWN消息产生了字符消息,所以字符消息是夹在按键消息之间传递给窗口消息处理程序的。例如,如果Caps Lock未打开,而使用者按下再释放A键,则窗口消息处理程序将接收到如下表所示的三个消息:如果按下Shift键,再按下A键,然后释放A键,再释放Shift键,就会输入大写的A,而窗口消息处理程序会接收到五个消息,如下表所示:注意:注意:ShiftShift键本身不产生字符消息。键本身不产生字符消息。(2)WM_CHAR消息消息 LRESULT CALLBACK WindowProc(HWND hwnd,/handle to w
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- windows 程序设计 08
限制150内