谁能讲一下C++中的函数“OnKeyDown”?
4个回答
展开全部
CWnd::OnKeyDown
afx_msg
void
OnKeyDown(
UINT
nChar,
UINT
nRepCnt,
UINT
nFlags
);
参数:
nChar
指定了给定键的虚拟键码。
nRepCnt
重复计数(用户按住键引起的重复击键数目)。
nFlags
指定了扫描码、暂态键码、原来的键状态和上下文代码,如下面的列表所示:
值
描述
0-7
扫描码(依赖于OEM的值)
8
扩展键,比如功能键或数字键盘上的键(如果它是扩展键,则为1)
9-10
未使用
11-12
Windows内部使用
13
上下文代码(如果按下键时ALT键时被按下的,则为1;否则为0)
14
原来的键状态(如果在调用之前键时按下的,则为1;如果键是弹起的,则为0)
15
暂态(如果键正在被释放,则为1;如果键正被按下,则为0)
对于WM_KEYDOWN消息,键暂态位(15位)为0,并且上下文代码位(13位)为0。
说明:
当用户按下了一个非系统键时,框架调用这个成员函数。非系统键是指当ALT键为被按下时按下的键盘键或者当CWnd拥有输入焦点时按下的键盘键。
由于自动重复,在调用OnKeyUp成员函数之前可能会产生多个OnKeyDown调用。指明原来的键状态的位可以被用来确定OnKeyDown调用时是第一次被按下还是重复的按下状态。
对于IBM增强101和102键键盘,增强键包括键盘主体部分的右ALT键和右CTRL键;数字键盘左侧的INS,DEL,HOME,END,PAGE
UP,PAGE
DOWN和箭头键;以及数字键盘上的斜杠(/)和ENTER键。一些其它的键盘可能支持nFlags中的扩展键位。
注意
框架调用这个成员函数以允许你的应用程序处理一个Windows消息。传递给你的成员函数的参数反映了接收到消息时框架接收到的参数。如果你调用了这个函数的基类实现,则该实现将使用最初传递给消息的参数(而不是你提供给这个函数的参数)。
afx_msg
void
OnKeyDown(
UINT
nChar,
UINT
nRepCnt,
UINT
nFlags
);
参数:
nChar
指定了给定键的虚拟键码。
nRepCnt
重复计数(用户按住键引起的重复击键数目)。
nFlags
指定了扫描码、暂态键码、原来的键状态和上下文代码,如下面的列表所示:
值
描述
0-7
扫描码(依赖于OEM的值)
8
扩展键,比如功能键或数字键盘上的键(如果它是扩展键,则为1)
9-10
未使用
11-12
Windows内部使用
13
上下文代码(如果按下键时ALT键时被按下的,则为1;否则为0)
14
原来的键状态(如果在调用之前键时按下的,则为1;如果键是弹起的,则为0)
15
暂态(如果键正在被释放,则为1;如果键正被按下,则为0)
对于WM_KEYDOWN消息,键暂态位(15位)为0,并且上下文代码位(13位)为0。
说明:
当用户按下了一个非系统键时,框架调用这个成员函数。非系统键是指当ALT键为被按下时按下的键盘键或者当CWnd拥有输入焦点时按下的键盘键。
由于自动重复,在调用OnKeyUp成员函数之前可能会产生多个OnKeyDown调用。指明原来的键状态的位可以被用来确定OnKeyDown调用时是第一次被按下还是重复的按下状态。
对于IBM增强101和102键键盘,增强键包括键盘主体部分的右ALT键和右CTRL键;数字键盘左侧的INS,DEL,HOME,END,PAGE
UP,PAGE
DOWN和箭头键;以及数字键盘上的斜杠(/)和ENTER键。一些其它的键盘可能支持nFlags中的扩展键位。
注意
框架调用这个成员函数以允许你的应用程序处理一个Windows消息。传递给你的成员函数的参数反映了接收到消息时框架接收到的参数。如果你调用了这个函数的基类实现,则该实现将使用最初传递给消息的参数(而不是你提供给这个函数的参数)。
展开全部
是MFC吧?WM_KEYDOWM消息的处理函数就叫OnKeyDown,此消息当按键盘按键时被触发,参数wparam是按键的ASCII码
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
键盘消息函数,当按下键盘的按键时会相应这个函数,在里面有参数传递按的是哪个键,然后在函数中对对应按键做出相应操作。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当键盘的键被按下时执行的一个函数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询