_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所示。
|