设为首页 加入收藏

TOP

键盘(四十四)
2010-12-30 21:11:33 来源: 作者: 【 】 浏览:32500
Tags:键盘
或文字资料的讯息传递给WndProc时都将使用16位元字元而不是8位元字元。特别是WM_CHAR讯息,将传递16位元字元代码而不是8位元字元代码。

请在美国英语版的Windows NT下执行Unicode版的KEYVIEW1。这里假定您已经安装了至少三种我们试验过的键盘布局-即德语、希腊语和俄语。

使用美国英语版的Windows NT,并安装了英语或者德语的键盘布局,Unicode版的KEYVIEW1在工作时将与非Unicode版相同。它将接收相同的字元代码(所有0xFF或者更低的值),并显示同样正确的字元。这是因为最初的256个Unicode字元与Windows中使用的ANSI字元集相同。

现在切换到希腊键盘布局,并键入『abcde』。WM_CHAR讯息将含有Unicode字元代码0x03B1、 0x03B2、0x03C8、 0x03B4和0x03B5。注意,我们先看到的字元代码值比0xFF高。这些Unicode字元代码与希腊字母 tbyd 和 e 相对应。不过,所有这五个字元都显示为方块!这是因为SYSTEM_FIXED_FONT只含有256个字元。

现在切换到俄语键盘布局,并键入『abcde』。KEYVIEW1显示WM_CHAR讯息和Unicode字元代码0x0444、0x0438、0x0441、0x0432和0x0443,这些字元对应於斯拉夫字母 φисв 和 у。不过,所有这五个字母也显示为实心方块。

简言之,非Unicode版的KEYVIEW1显示错误字元的地方,Unicode版的KEYVIEW1就显示实心方块,以表示目前的字体没有那种特殊字元。虽然我不愿说Unicode版的KEYVIEW1是非Unicode版的改进,但事实确实如此。非Unicode版显示错误字元,而Unicode版不会这样。

Unicode和非Unicode版KEYVIEW1的不同之处主要在两个方面。

首先,WM_CHAR讯息伴随一个16位元字元代码,而不是8位元字元代码。在非Unicode版本的KEYVIEW1中,8位元字元代码的含义取决於目前活动的键盘布局。如果来自德语键盘,则0xE1代码表示 á,如果来自希腊语键盘则代表 a,如果来自俄语键盘则代表 s

首页 上一页 41 42 43 44 45 46 47 下一页 尾页 44/61/61
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇滑鼠 下一篇图形基础

评论

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