键盘焦点和激活

【勇芳软件工作室】汉化HomePreviousNext

Windows将键盘消息发送到使用键盘焦点创建窗口的前台线程的消息队列。【键盘焦点】是窗口的临时属性。Windows通过将用户方向的键盘焦点从一个窗口移动到另一个窗口,在显示屏上的所有窗口中共享键盘。具有键盘焦点的窗口接收(从创建线程的线程的消息队列中)所有键盘消息,直到焦点更改为不同的窗口。

一个线程可以调用GetFocus函数来确定它的哪个窗口(如果有的话)当前具有键盘焦点。线程可以通过调用SetFocus函数将键盘焦点放到其中一个窗口中。当键盘焦点从一个窗口更改为另一个窗口时,系统会向失去焦点的窗口发送WM_KILLFOCUS消息,然后向已获得焦点的窗口发送WM_SETFOCUS消息。

键盘焦点的概念与活动窗口的概念相关。【活动窗口】是用户当前正在使用的顶级窗口。具有键盘焦点的窗口是活动窗口或活动窗口的子窗口。因此,用户可以轻松识别活动窗口,系统将其放置在Z顺序的顶部,并使其标题栏(如果有的话)和边框突出显示。

用户可以通过单击来激活顶级窗口,使用ALT + TAB或ALT + ESC组合键选择顶级窗口,或从任务列表中选择是否。线程可以使用SetActiveWindow功能激活顶层窗口。它可以通过使用GetActiveWindow功能来确定它创建的顶级窗口是否处于活动状态。

当一个窗口被禁用并另一个激活时,Windows将首先将WM_ACTIVATE消息发送到被禁用的窗口,然后再发送到正在激活的窗口。如果窗口被禁用,则【wParam中】参数的低位字为零,如果正在激活则为非零。当默认窗口过程收到WM_ACTIVATE消息时,它将键盘焦点设置为活动窗口。