第6章 键盘

来源:互联网 发布:java web helloworld 编辑:程序博客网 时间:2024/06/05 06:13

1、Windows 程序怎样获得键盘输入:键盘输入已消息的形式传递给程序的Windows 窗口过程。

2、Windows 默认窗口过程:DefWindowProc。

3、一些键盘消息交付给DefWindowProc,最终转换成某种具体消息传递给窗口过程。

4、所以的窗口共享键盘,当键盘上按下一个键,只有一个窗口过程能接收到该消息。MSG结构中包含窗口句柄HWND,在消息循环中,DispatchMessage函数传递消息给需要该消息的窗口过程。

5、具有输入焦点的窗口活动窗口的关系:具有输入焦点的窗口,要么是活动窗口,或者活动窗口的子窗口,或者活动窗口的子窗口的子窗口。

6、字符键,击键时发送击键消息还发送字符消息。其他键只产生击键消息。

7、GetMessageTime可获取消息产生时间,如wm_keyDown消息的按下时间。

8、应用程序窗口过程不需要关注系统消息(例如WM_SYSKEYDWON是系统消息,WM_KEYDOWN是非系统消息),应将他们交付给DefWindowProc函数完成默认处理。

9、虚拟键存储在wm_keydown,wm_keyup,wm_syskeydown,wm_syskeyup消息的wParam参数中。此代码确定哪个键被按下或者释放。

10、创建键盘接口的一个简单方法就是在窗口过程中增加wm_keydown逻辑。

11、GetMessage函数从消息队列中取出下一条消息,TranslateMessage函数负责将消息转换成窗口消息(例如:将击键消息--按下字符间键,转换成字符消息--转成某个字符WM_CHAR)消息,f放在击键消息后面,然后DispatchMessage 调用窗口过程。

12、光标是指鼠标的形状,提示输入的竖线是插入符号(caret)

13、一个程序的消息队列只支持一个插入符,所以所有窗口必须共享插入法。

0 0
原创粉丝点击