活动窗口(Active),焦点窗口(Focus)和前景窗口(Foreground)之间的关系

任何一个时候,我们的Windows桌面上总有一个最前台的窗口,其实说简单的,就是标题栏变成深蓝色的那个窗口,仅此一个,这个窗口就是前景窗口(Foreground Window),其他窗口就是后台窗口(Background Window)。那创建前景窗口的线程就是前景线程(Foreground Thread),这个线程并不一定就是应用程序的主线程。

线程内部会维护当前自己的活动窗口(Active Window)和焦点窗口(Focus Window), 焦点窗口其实只是窗口的一个属性,其实就是“焦点状态”是窗口的一个属性,而焦点窗口的顶层窗口就是活动窗口,举个例子:一个对话框中有一个按钮,当按钮 获得焦点的时候,那此按钮就是焦点窗口,则包含此按钮的对话框就是活动窗口,若出现窗口嵌套的情况,则最根的那个窗口才是活动窗口。

上面2段已经分别描述了前景窗口,活动窗口和焦点窗口的一些情况,可是前景窗口和活动窗口又是什么区别呢?

焦 点窗口只是一个局部的概念,并不是所有的焦点窗口都可以获得键盘事件。只有前景线程的焦点窗口才能从系统队列中得到键盘事件,而前景线程中的活动窗口是前 景窗口。在任何时刻系统中都只可能有一个被激活的窗口,这就是前景窗口。这也就回答了上一节中的问题:与系统队列相连接的线程就是前景线程,而那个可以得 到键盘事件的窗口就是前景线程的焦点窗口。(以上文字引自开头的文章)

相信仔细理解一下这些描述,应该能对你有所帮助了。

最新文章

  1. sql server存储过程分页,行变列
  2. [转] - 在mac的终端中使用sublime打开文件
  3. windows下nginx+fastcgi不能使用file_get_contents/curl/fopen的原因
  4. 利用 Lua 实现 App 动态化方案
  5. 快手 Android 工程师面经
  6. 怎么调用api接口
  7. [LeetCode] Set Intersection Size At Least Two 设置交集大小至少为2
  8. Django的ORM操作
  9. Visual Studio 2017 - Windows应用程序打包成exe文件(1)- 工具简单总结
  10. Spring国际化模块
  11. 一、python基本语法元素(温度转换)
  12. python爬虫 bs4_4select()教程
  13. 强化学习策略梯度方法之: REINFORCE 算法(从原理到代码实现)
  14. matlab画图标题自定义字体大小
  15. PAT1020 (已知中序,后序遍历转前序遍历)
  16. POJ-2777 Count Color(线段树,区间染色问题)
  17. 数据库对比:选择MariaDB还是MySQL?
  18. 制造抽象基类--《C++必知必会》 条款33
  19. Electron 安装与使用
  20. 安装Docker-ce

热门文章

  1. 跨浏览器的CORS
  2. Python向PHP发起GET与POST请求
  3. C# Interview Questions:C#-English Questions
  4. 任务调度Cron表达式及Quartz代码详解
  5. wx小程序的学习
  6. 点滴积累【other】---Windows 7 IIS (HTTP Error 500.21 - Internal Server Error)解决方案(转载)
  7. uva 10808 - Rational Resistors(基尔霍夫定律+高斯消元)
  8. js获取网页宽高
  9. Myeclipse中 Exploded location overlaps an existing deployment解决办法
  10. ACM_数论_阶乘N!的末尾有几个零 和 末尾有多少个 1 nyoj 954