设为首页 加入收藏

TOP

键盘(二十一)
2010-12-30 21:11:33 来源: 作者: 【 】 浏览:32466
Tags:键盘

WM_CHAR和WM_DEADCHAR讯息是从WM_KEYDOWN得到的;而WM_SYSCHAR和WM_SYSDEADCHAR讯息是从WM_SYSKEYDOWN讯息得到的(我将简要地讨论一下什么是死字元)。

有一个好讯息:在大多数情况下,Windows程式会忽略除WM_CHAR之外的任何讯息。伴随四个字元讯息的lParam参数与产生字元代码讯息的按键讯息之lParam参数相同。不过,参数wParam不是虚拟键码。实际上,它是ANSI或Unico

_LEFT | TA_TOP) ;
}

EndPaint (hwnd, &ps) ;
return 0 ;

case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;
}

字元讯息
 

前面讨论了利用位移状态资讯把按键讯息翻译为字元讯息的方法,并且提到,仅利用转换状态资讯还不够,因为还需要知道与国家/地区有关的键盘配置。由於这个原因,您不应该试图把按键讯息翻译为字元代码。Windows会为您完成这一工作,在前面我们曾看到过以下的程式码:

这是WinMain中典型的讯息回圈。GetMessage函式用伫列中的下一个讯息填入msg结构的栏位。DispatchMessage以此讯息为参数呼叫适当的视窗讯息处理程式。

在这两个函式之间是TranslateMessage函式,它将按键讯息转换为字元讯息。如果讯息为WM_KEYDOWN或者WM_SYSKEYDOWN,并且按键与位移状态相组合产生一个字元,则TranslateMessage把字元讯息放入讯息伫列中。此字元讯息将是GetMessage从讯息伫列中得到的按键讯息之後的下一个讯息。

四类字元讯息
 

字元讯息可以分为四类,如表6-9所示。

表6-9
字元死字元
 
非系统字元 WM_CHAR WM_DEADCHAR
系统字元 WM_SYSCHAR WM_SYSDEADCHAR
首页 上一页 18 19 20 21 22 23 24 下一页 尾页 21/61/61
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇滑鼠 下一篇图形基础

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: