预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共30页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第七章Windows应用程序中的键盘与鼠标 学习内容 7.1键盘在应用程序的应用 7.2键盘操作应用举例 7.3鼠标在应用程序的应用 7.4鼠标应用程序举例 键盘在应用程序中的应用 对应 键盘上的键一个唯一的标识值(扫描码) 产 按下或释放某键时生 扫描码是依赖于具体设备的,为达到设备无关性的要求,往往使用与具体 设备无关的虚拟码,虚拟码是由Windows系统定义的与设备无关的键的标识。 设备驱动程序翻译由于键盘的输入产生一条 截取键的扫描码虚拟码消息 包含 扫描码、虚拟码以及其他与击键有关的消息 设备驱动程序把消息放到系统的Windows从系统消息队列 消息消息队列中中取出消息 窗口过程 取出键盘消息进行处理发送到相应的线程消息队列中 虚拟码是一种与设备无关的键盘编码,它的值存放在键盘消息的wParam 参数中,用以标识哪一个键被按下或释放,最常用的虚拟码已经在Windows.h 中定义。 常用的虚拟码 符号常量名称等价的键盘键或符号常量名称等价的键盘键或 鼠标按钮鼠标按钮 VK_LBUTTON鼠标左按钮VK_BACK退格键 VK_RBUTTON鼠标右按钮VK_TAB制表键 VK_MBUTTON鼠标中按钮VK_RETURN回车键 VK_SHIFTShift键VK_CONTROLCtrl键 VK_ALTAlt键VK_PAUSEPause键 VK_CAPITALCapsLock键VK_ESCAPEEsc键 VK_PRIORPageUp键VK_NEXTPageDown键 VK_ENDEnd键VK_HOMEHome键 VK_LEFT左键头键VK_RIGHT右箭头键 VK_UP上箭头键VK_DOWN下箭头键 VK_0~VK_90~9键VK_A~VK_ZA~Z键 操作系统在接收到键盘输入后 把消息发送给具有“输入焦点(inputfocus)的窗口 应用程序一般有几个窗 口,但当按下某一个键有“输入焦点” 时,只有一个窗口能接的窗口应是活 收到该键盘消息,接收动窗口或者活 这个键盘消息的窗口称动窗口的子窗口 为有“输入焦点”的窗口 窗口函数通过捕获WM_SETFOCUS和WM_KILLFOCUS消息确定 当前窗口是否具有输入焦点。 窗口正在接窗口失去 收输入焦点输入焦点 一个按键的组合产生了不使用Alt键组合 一个可以显示的字符时,的按键消息 就产生了一个字符消息 字符消息 键盘消息非系统按键消息 按键消息 系统按键消息 按下或松开一个键时Alt键与相关输入键的组合 就产生了一按键消息产生的消息,这些键一般 由Windows系统内部直接 处理,应用程序不处理 消息类型含义 WM_KEYDOWN非系统按下了非系统键消息 WM_KEYUP非系统松开了非系统键消息 WM_SYSKEYDOWN系统按下了系统键消息 WM_SYSKEYUP系统松开了系统键消息 wParam包含了识别按下的键的虚键码 按键消 息的两 重复计数位(0~15位),键被重复按下的次数 个变量 lParamOEM扫描码(16~23位),设备相关的,忽略 扩展键标志(24位),Alt或Ctl键按下时为1,否则为0 32位保留位(25~28位) 关联码(29位),Alt键按下为1,否则为0 键的先前状态(位30) 转换状态(31位),始终按着某键所产生的消息 在WinMain函数的消息循环中包含了TranslateMessage函 数,它的主要功能是把按键消息转化为字符消息,但只有当键 盘驱动程序把键盘字符映射成ASCII码后才能产生WM_CHAR 消息。 系统:WM_SYSKEYDOWN和WM_SYSKEYUP 按键消息产生的消息 字符消息 非系统:WM_KEYDOWN和WM_KEYUP 的按键消息产生的消息 消息类型含义 WM_CHAR非系统非系统字符 WM_DEADCHAR非系统非系统死字符 WM_SYSCHAR系统系统字符 WM_SYSDEADCHAR系统系统死字符 7.2键盘操作应用举例 【例1】本例演示键盘输入时所产生的消息序 列并在窗口的客户区显示对应的字符。用户窗口区输入“这是一 个有关键盘操作的示例程 序”的字符串 程序中缓冲区大小只设15 个字符,当缓冲区满时若 再输入任何字符,就出现 (1)号错误提示 用户按下左箭头键直至光 标到达本行起始位置时, 就无法再往左移动,则出 现(2)号错误信息 若此时您按若当前光标位置处于本行的若字符缓冲区中已没有任 下Esc键,就起始位置,此时按下回退键何字符,此时按下了 出现(3)号错(BackSpace),则出现编号为Delete键,则出现(5)号错 误提示信息(4)的错误提示信息误提示信息 longWINAPIWndProc(HWNDhWnd,UINTiMessag