windows窗口类型

windows创建的是怎样的一套窗口理论体系,windows

window窗口有下面的几个基本的分类app

  • Overlapped Windows 重叠窗口
  • Pop-up Windows 弹出窗口
  • Child Windows 子窗口
  • Layered Windows 分层窗口
  • Message-Only Windows

什么是层叠窗口

层叠窗口最典型的就是咱们的一个应用窗口的主窗口,若是用WS_OVERLAPPEDWINDOW的属性建立了窗口,那么窗口必定会有标题栏,窗口边框,窗口菜单,和最大最小按钮。性能

层叠窗口是没有父窗口的,也就是用GetParent()获取到的父窗口是NULL操作系统

什么是弹出窗口

弹出窗口跟层叠窗口最大的区别就是弹出窗口通常都会有个父窗口的,如咱们经常使用的MessageBox就是弹出窗口,而它的父窗口通常就是咱们调用地方的窗口。.net

弹出窗口是特殊的层叠窗口,一般会是dialog对话框,message对话框get

建立窗口的时候指定WS_POPUP风格就会建立弹出窗口后台

什么是子窗口

子窗口一般会有 WS_CHILD风格,而且只可以被分配到父窗口的客户区域。子窗口必需要有父窗口,父窗口能够是层叠窗口也能够是弹出窗口甚至也能够是其它的子窗口渲染

和父窗口的关系
一个已经存在的子窗口是能够经过SetParent来改变它的父窗口的,也就是能够将子窗口从旧的父窗口的客户区中删除掉,而移动到新的父窗口的客户区域。也就是说子窗口实际上是能够随意改变父窗口的程序

由于子窗口的关系,因而应用程序经常会维持着一个窗口关系链,就像是一个族谱同样。咱们可使用IsChild来判断一个窗口是不是另外一个窗口的子窗口重定向

什么是分层窗口

使用分层窗口可以显著的提高拥有混合形状的窗口的性能和视觉效果。这些窗口可能会有动态形状,或者你但愿使用alpha混合效果,分层窗口都是不错的选择。系统可以自动的组合而且重绘分层窗口和基本的应用窗口。所以分层窗口可以被平滑的渲染,而且不会有典型混合窗口区域的闪烁的状况。此外分层窗口还可以有部分窗口半透明的效果,这是由于alpha效果的混合

也就是在多窗口叠加的时候使用这个属性?

分层窗口实际上一种在Windows下可以自动地与非活动窗口进行合成的一种窗口.

利用分层窗口能够实现不规则窗口和窗口的Alpha混合效果。操做系统自动混合和重画分层窗口并且平滑渲染和没有抖颤。

分层窗口的特色就在于,它将窗口的绘制操做进行了从新定义::【由操做系统(而不是应用程序),完成重绘操做,完成的方式是"合成":将窗口当作一副位图,窗口外形的变化只是"位图"的变化!而不须要非得经过对WM_PAINT消息来进行.这样就可以保证分层窗口在概念上包括两层含义:与传统相比,这种窗口从外观上看起来恩奇怪(它能够是透明或者半透明的,或者是异性的);二是【重定向】:对窗口的重绘操做不须要你手工添加代码来维护,系统会自动将重绘操做在后台完成!

http://msdn.microsoft.com/en-us/library/ms997507.aspx

什么是“仅消息”窗口

一个“仅消息”的窗口容许你发送和接收消息。它是不可见的,没有z序,不可以被枚举,而且不能接收广播消息。这种窗口只是简单的派遣(中转)消息。


总参考:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms632599(v=vs.85).aspx#types
http://bbs.csdn.net/topics/390716333?page=1

相关文章
相关标签/搜索