窗口关系
一个窗口有很多方式关联到用户或者其它的窗口。一个窗口可能是“自有窗口?”,前景窗口或者背景窗口。一个窗口总有一个 ‘z序’ 用以关联到其它窗口。什么是‘z序’,下面会简单的叙述一下
背景和前景窗口
每个进程可以有多个可执行的线程。每个线程都可以创建窗口。一个线程创建的了一个窗口,并且这个窗口时用户正在工作和使用的,那么这个线程叫做前景线程,而这个窗口就是前景窗口。而所有其他的线程都是背景线程,而由背景线程创建的窗口都称作背景窗口。
每个线程都有一个优先级,这个优先级决定了线程获得的cpu时间的数量。尽管一个应用程序可以设置它线程的优先级,但是前景线程的优先级总比背景线程的优先级要高。因为前景线程有较高的优先级,所以它比背景线程拥有更多的cpu时间。
被拥有窗口
一个层叠窗口或者弹出窗口都能够被其它的层叠窗口或者弹出窗口所拥有。
- 一个被拥有的窗口在z序上必须要在拥有者之上
- 系统自动的销毁一个被拥有的窗口当拥有者窗口销毁的时候
- 被拥有会隐藏当拥有者窗口最小化的时候
Dialog对话框和消息对话框默认是被拥有窗口。应用程序在调用Dialog对话框和消息对话框时将被指定为拥有者窗口。
z序
一个窗口z序指示(显示)了窗口在层叠窗口栈中的位置。(我明白了,这个z是立体空间里面的z轴坐标, x、y、z坐标)。一个窗口在z序的顶端,那么它将覆盖在所有窗口的上面。而一个窗口如果在z序的底端,那么所有的窗口都层叠在这个窗口之上。
用户可以通过激活窗口来改变窗口的z序。系统会将激活窗口放置在z序的顶端。当一个窗口变为z序的顶端的时候,那么它的子窗口也会变为z序的顶端
参考:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms632599(v=vs.85).aspx#relationships
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。