现在,KEYVIEW1还在执行,选择德语键盘布局。按下=键然後输入一个母音(a、e、i、o或者u)。=键将产生一个WM_DEADCHAR讯息,母音产生一个WM_CHAR讯息和(单独的)字元代码0xE1、0xE9、0xED、0xF3、0xFA和字元 á、é、í、ó 或 ú。这就是死键的工作方式。
现在选择希腊键盘布局。输入『abcde』,您会得到什么?您将得到WM_CHAR讯息和字元代码0xE1、0xE2、0xF8、0xE4、0xE5和字元 á、â、¢、ä 和 å。在这里有些字元不能正确显示。难道您不应该得到希腊字母表中的字母吗?
现在切换到俄语键盘并重新输入『abcde』。现在您得到WM_CHAR讯息和字元代码0xF4、0xE8、0xF1、0xE2和0xF3,以及字元 ô、è、ñ、â 和 ó。而且,还是有些字母不能正常显示。您应从斯拉夫字母表中得到这些字母。
问题在於:您已经切换键盘以产生不同的字元代码,但您还没有将此切换通知GDI,好让GDI能选择适当的符号来显示解释这些字元代码。
如果您非常勇敢,还有可用的备用PC,并且是专业或全球版Microsoft Developer Network(MSDN)的订阅户,那么您也许想安装(例如)希腊版的Windows,您还可以把那四种键盘布局(英语、希腊语、德语和俄语)安装上去。现在执行KEYLOOK1,切换到英语键盘布局,然後输入『abcde』。您应得到ASCII字元代码0x61、0x62、0x63、0x64和0x65以及字元a、b、c、d和e(并且您可以放心:即使在希腊版,ASCII还是正常通行的)。
在希腊版的Windows中,切换到希腊键盘布局并输入『abcde』。您将得到WM_CHAR讯息和字元代码0xE1、0xE2、0xF8、0xE4和0xE5。这与您在安装希腊键盘布局的英语版Windows中得到的字元代码相同。但现在显示的字元是 t、b、y、d 和 e。这些确实是小写的希腊字母alpha、beta、psi、delta和epsilon(gamma怎么了?是这样,如果使用希腊