设为首页 加入收藏

TOP

键盘(二十五)
2010-12-30 21:11:33 来源: 作者: 【 】 浏览:32476
Tags:键盘
需要处理WM_DEADCHAR讯息,原因是WM_CHAR讯息已含有程式所需要的所有资讯。Windows的做法甚至还设计了内部错误处理。如果在死键之後跟有不能带此音调符号的字母(例如「s」),那么视窗讯息处理程式将在一行接收到两条WM_CHAR讯息-前一个讯息的wParam等於音调符号本身的ASCII代码(与传递到WM_DEADCHAR讯息的wParam值相同),第二个讯息的wParam等於字母s的ASCII代码。

当然,要感受这种做法的运作方式,最好的方法就是实际操作。您必须载入使用死键的外语键盘,例如前面讲过的德语键盘。您可以这样设定:在「控制台」中选择「键盘」,然後选择「语系」页面标签。然後您需要一个应用程式,该程式可以显示它接收的每一个键盘讯息的详细资讯。下面的KEYVIEW1就是这样的程式。

键盘讯息和字元集
 

本章剩下的范例程式有缺陷。它们不能在所有版本的Windows下都正常执行。这些缺陷不是特意引过程式码中的;事实上,您也许永远不会遇到这些缺陷。只有在不同的键盘语言和键盘布局间切换,以及在多位元组字元集的远东版Windows下执行程式时,这些问题才会出现-所以我不愿将它们称为「错误」。

不过,如果程式使用Unicode编译并在Windows NT下执行,那么程式会执行得更好。我在第二章提到过这个问题,并且展示了Unicode对简化棘手的国际化问题的重要性。

KEYVIEW1程式
 

了解键盘国际化问题的第一步,就是检查Windows传递给视窗讯息处理程式的键盘内容和字元讯息。程式6-2所示的KEYVIEW1会对此有所帮助。该程式在显示区域显示Windows向视窗讯息处理程式发送的8种不同键盘讯息的全部资讯。

首页 上一页 22 23 24 25 26 27 28 下一页 尾页 25/61/61
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇滑鼠 下一篇图形基础

评论

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