CWnd::OnSysChar

afx_msg void OnSysChar( UINT nChar, UINT nRepCnt, UINT nFlags );

参数:
nChar指定了控制菜单键的ASCII字符码。
nRepCnt指定了重复计数(当用户按住键时产生的重复击键次数)。
nFlagsnFlags参数可以具有这些值:
含义
0-15指定了重复计数。该值为用户按住键时产生的重复击键次数
16-23指定了扫描码。其值依赖于原始设备制造商(OEM)
24指定了该键是否是扩展键,如增强101或102键的键盘上右手的ALT和CTRL键。如果它是扩展键,则其值为1;否则为0
25-28Windows内部使用
29指定了上下文代码。如果当按下键时ALT键是按下的,则其值为1;否则,其值为0
30指定了原来的键状态。如果在消息发出之前键是按下的,则其值为1;如果是弹起的,则为0
31指定了键的暂态。如果键正被释放,则其值为1,如果键正被按下,则为0

说明:
如果CWnd拥有输入焦点,并且转换出WM_SYSKEYUP和WM_SYSKEYDOWN消息,则框架调用这个成员函数。它指定了控制菜单键的虚拟键码。
如果上下文代码为0,则可以将WM_SYSCHAR消息传递给Windows的TranslateAccelerator函数,它将处理这个消息,就好像这个消息是一个普通按键消息而不是系统字符键。这就使得加速键可以在活动窗口中使用,即使活动窗口不具有输入焦点。
对于IBM增强101和102键键盘,增强键包括键盘主体部分的右ALT键和右CTRL键;数字键盘左侧的INS,DEL,HOME,END,PAGE UP,PAGE DOWN和箭头键;以及数字键盘上的斜杠(/)和ENTER键。一些其它的键盘可能支持nFlags中的扩展键位。
注意 框架调用这个成员函数以允许你的应用程序处理一个Windows消息。传递给你的成员函数的参数反映了接收到消息时框架接收到的参数。如果你调用了这个函数的基类实现,则该实现将使用最初传递给消息的参数(而不是你提供给这个函数的参数)。

请参阅:::TranslateAccelerator, WM_SYSKEYDOWN, WM_SYSKEYUP, WM_SYSCHAR