这个消息是谁的?
来源:互联网 发布:php 混淆加密 编辑:程序博客网 时间:2024/06/12 01:07
当很多应用程序同时运行在Windows上时,这些程序共享Windows的一切资源,包括键盘,那么当发出一个键盘消息时,这个消息时给哪个程序的呢?如果该程序有多个窗口,这个消息又是哪个窗口的呢?
当发出一个消息到消息队列时,这个消息本省携带的信息就明确地指出了自己是针对哪个窗口的,这个标识就是MSG结构中的hwnd变量,所以发出一个消息,该消息对应一个窗口,该窗口对应一个窗口过程,这样就可以明确的指出消息该被哪个窗口过程处理,窗口过程根据消息本省的message、lParam、wParam变量携带的信息就可以决定对该消息如何相应,这样消息传递问题就很好的解决了,不会产生歧义。
有输入焦点的窗口:接收到键盘事件的窗口。
活动窗口:最上层的窗口,也就是说,活动窗口的父窗口句柄是NULL。如果一个活动窗口有标题栏,则Windows会加亮显示其标题栏。
2者关系:具有输入焦点的窗口要么就是活动窗口,要么就是活动窗口的子孙窗口。
当所有程序窗口都最小化时,就没有窗口具有输入焦点(活动窗口依然存在)。但是Windows仍然发送键盘消息给活动窗口,只不过此时的消息形式不同于活动窗口没有最小化时发送的键盘消息。
窗口过程通过捕获WM_SETFOCUS和WM_KILLFOCUS消息来确定自己的窗口是否具有输入焦点。WM_SETFOCUS表明窗口正在接受输入焦点,WM_KILLFOCUS表明窗口正在失去输入焦点。
- 这个消息是谁的?
- 今天听到的这个消息,感觉唏嘘不已 ... ...
- 我是谁的天使
- Gmail.cn是谁的?
- 米的妈妈是谁 ?
- SOA 是谁的 SOS?
- 李彦宏:是谁的“白马王子”?
- 到底是谁的错!!
- 互联网是谁的江湖?
- 是谁的错?
- 思科的敌人是谁
- 写博的是谁
- 抄底的是谁
- 孔夫子的“太太”是谁?
- 难产是谁的责任?
- 这是谁的手机?
- 到底是谁的错?
- 黄帝的祖先是谁
- 1019学习记录
- 我是傻,总是一而再三的去相信。
- 从决策树学习谈到贝叶斯分类算法、EM、HMM
- jbpm5学习资料(组件Components)
- 如何自动以管理员身份运行.NET程序?
- 这个消息是谁的?
- 使用预声明解决结构体互相引用以及头文件内容互相包含的问题
- poj1436 线段树+暴力
- android 圆角ListView
- 起码我们曾经爱过,不是吗
- 汽车油耗计算器
- C++_文件输入输出
- Ubuntu下 ZedBoard USB-Jtag驱动安装 以及双核调试
- 建站之一:平台选择和环境搭建(SAE)