设为首页 加入收藏

TOP

键盘(三)
2010-12-30 21:11:33 】 浏览:47324
Tags:键盘
视窗。最常见的子视窗有类似以下控制项:出现在对话方块中的下压按钮、单选钮、核取方块、卷动列、编辑方块和清单方块。子视窗不能自己成为活动视窗。只有当它是活动视窗的衍生视窗时,子视窗才能有输入焦点。子视窗控制项一般通过显示一个闪烁的插入符号或虚线来表示它具有输入焦点。

有时输入焦点不在任何视窗中。这种情况发生在所有程式都是最小化的时候。这时,Windows将继续向活动视窗发送键盘讯息,但是这些讯息与发送给非最小化的活动视窗的键盘讯息有不同的形式。

视窗讯息处理程式通过拦截WM_SETFOCUS和WM_KILLFOCUS讯息来判定它的视窗何时拥有输入焦点。WM_SETFOCUS指示视窗正在得到输入焦点,WM_KILLFOCUS表示视窗正在失去输入焦点。我将在本章的後面详细说明这些讯息。

伫列和同步
 

当使用者按下并释放键盘上的键时,Windows和键盘驱动程式将硬体扫描码转换为格式讯息。然而,这些讯息并不保存在讯息伫列中。实际上,Windows在所谓的「系统讯息伫列」中保存这些讯息。系统讯息伫列是独立的讯息伫列,它由Windows维护,用於初步保存使用者从键盘和滑鼠输入的资讯。只有当Windows应用程式处理完前一个使用者输入讯息时,Windows才会从系统讯息伫列中取出下一个讯息,并将其放入应用程式的讯息伫列中。

此过程分为两步:首先在系统讯息伫列中保存讯息,然後将它们放入应用程式的讯息伫列,其原因是需要同步。就像我们刚才所学的,假定接收键盘输入的视窗就是有输入焦点的视窗。使用者的输入速度可能比应用程式处理按键的速度快,并且特定的按键可能会使焦点从一个视窗切换到另一个视窗,後来的按键就输入到了另一个视窗。但如果後来的按键已经记下了目标视窗的位址,并放入了应用程式讯息伫列,那么後来的按键就不能输入到另一个视窗。

按键和字元
 

应用程式从Windows接收的关於键盘事件的讯息可以分为按键和字元两类,这与您看待键盘的两种方式一致。

首先,您可以将键盘看作是键的集合。键盘只有唯一的A键,按下该键是一次按键,释放该键也是一次按键。但是键盘也是能产生可显示字元或控制字元的输入设备。根据Ctrl、 Shift和Caps Lock键的状态,A键能产生几个字元。通常情况下,此字元为小写a。如果按下Shift键或者打开了Caps Lock,则该字元就变成大写A。如果按下了Ct

首页 上一页 1 2 3 4 5 6 7 下一页 尾页 3/61/61
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇滑鼠 下一篇图形基础

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目