咨询热线:400-666-0170  
图纸加密  首  页   图纸加密  关于我们  

与窗口有关的基本概念

窗口
   Windows应用程序中的窗口是指屏幕上的一个正方形区域,是应用程序用来显示输出或接收用户输入的。使用窗口的目的是因为Windows应用程序需要与用户进行交互来完成某些任务,所以Windows应用程序的首要任务就是创建一个窗口。

桌面窗口
   启动Windows系统,它就会自动创建桌面窗口。桌面窗口是系统定义的窗口,这个窗口绘制了屏幕的背景,作为Windows应用程序显示窗口的基础。桌面窗口使用了存放在位图(扩展名为.BMP)中的一个位图来绘制屏幕的背景,由这个位图所创建的图案被称为桌面壁纸。一般来讲,桌面窗口所用的位图是在下面这个注册桌面壁纸的关键字所指定的文件中的。
   HKEY_CURRENT_USER\ControlPanel\Desktop\Wallpaper
由系统配置的应用程序,如WindowsControlPanel,通过函数SetD- eskWallpaper指定另外一个位图文件名来改变桌面壁纸,SetDeskWallpaper函数从指定的文件中安装位图,系统用这个位图绘制屏幕的背景。当然,也可通过相关的API?来改变该位图。

父窗口
   窗口可以有一个父窗口,有父窗口的窗口称为子窗口,由父窗口提供的坐标系统对于窗口进行定位,父窗口会影响窗口的外观。如果一个窗口没有父窗口或者父窗口就是桌面窗口,则该窗口称为顶层窗口。应用程序可以通过?EnumWindows函数来获取它的每一个顶层窗口的句柄,再由EnumWindows函数把每一个顶层窗口的句柄传给应用程序所定义的回调函数。

子窗口
   子窗口有一个子窗口标识,它是由应用程序定义的对应于该子窗口的一个唯一的值。子窗口标识对创建多个子窗口的应用程序来讲是很有用的。创建一个子窗口时,应用程序就为它设置一个子窗口标识,创建了子窗口之后,就可通过SetWindowLong函数来改变窗口标识;通过GetWind-owLong函数来获取该窗口标识。

窗口名
   窗口可以有一个名字,窗口名(也称为窗口正文)是便于用户识别一个窗口的正文字符串。主窗口、对话框或消息框一般是在其标题栏上显示窗口。而对于控制,窗口名的外观取决于控制的类。按钮、编辑控制或静态控制是在控制所占据的矩形框内显示其窗口名,列表框、组合框则不显示其窗口名。应用程序在创建窗口以后可通过SetWindowText函数来改变窗口名;通过GetWindowTextLength或GetWindowText函数来获取当前窗口名的正文。

窗口句柄
   创建了窗口之后,创建函数返回唯一的标识窗口的窗口句柄,应用程序在其它函数中要用这个句柄来确保是对该窗口的操作。窗口句柄属于HWND数据类型;应用程序必须在说明一个窗口句柄的变量时使用该数据类型。
Windows系统还提供了另外几个专用的常量,在某些函数中用来替换窗口句柄,这些常量以HWND_作为前缀。例如HWND_TOP,HWND_BOTTOM。尽管常量NULL不是一个窗口句柄,但应用程序可在一些函数中用它来表明没有窗口受到影响。例如,将CreateWindowEx函数的hwndParent参数设置成?NULL,则所创建的窗口就无父窗口。有些函数可能返回?NULL而不是一个句柄,表示给定的操作没有施加给任何窗口。

框架、客户以及子窗口
   对于MDI应用程序,它有三类窗口:框架窗口、客户窗口以及若干个子窗口。框架窗口与应用程序的主窗口相似,有重置大小的边框、标题栏、SYSTEM菜单、最小化按钮。应用程序必须为框架窗口注册一个窗口类并提供一个支持它的窗口过程。MDI应用程序框架窗口的客户区显示输出,在MDI客户窗口输出显示。MDI的客户窗口是一种属于预注册窗口的子窗口,它作为子窗口的背景同
时为创建、操作子窗口提供支持。用户打开或创建一个文档时,客户窗口为该文档创建一个子窗口。由于子窗口是要裁剪的,它只能在客户窗口中,不能移出去。

实例句柄
   每个Windows应用程序都有一个与之相对应的实例句柄,Windows系统在应用程序开始的时候就为它提供了实例句柄。因为同一个应用程序可以有多个拷贝,Windows系统就是利用实例句柄来区分应用程序的不同实例。应用程序必须为不同的窗口指定实例句柄,当然也包括那些创建窗口的实例。

子窗口与父窗口的关系
   应用程序通过调用SetParent函数改变子窗口的父窗口,这种情况下,Windows系统从旧父窗口的客户区中删除该子窗口,并把它移到新父窗口的客户区。如果SetParent函数指定一个?NULL?句柄,桌面窗口就成为其新的父窗口,这样子窗口就画到桌面窗口上,在其它窗口边框的外面。GetPa-rent函数可用来获取子窗口的父窗口句柄。

禁止窗口
   窗口是可以被禁止的,被禁止的窗口不再接收键盘或鼠标输入,但它能接收来自其它窗口、其它应用程序以及Windows系统的消息。应用程序禁止一个窗口是为了防止用户使用这个窗口。 缺省情况下,一个刚被创建的窗口是被允许的,但应用程序可以通过设置WS_DISABLED?风格来禁止一个新窗口,也可通过?EnableWindow?函数允许或禁止一个存在的窗口。

活动窗口
   活动窗口是应用程序的顶层窗口,也就是当前使用的窗口。任何时候系统中只能有一个顶层窗口是活动的。用户可以通过单击窗口、使用ALT+ESC或ALT+TAB组合键来激活一个顶层窗口。应用程序则调用SetActiveWindow函数来激活一个顶层窗口。通过GetActiveWindow?函数来获取当前活动创建窗口的句柄。另外还可通过SetWindowPos、DeferWindowPos、SetWin-dowPlacement函数来激活不同的顶层窗口。

窗口可见性
   窗口既可以是可见的,也可以被隐藏。Windows?系统只在屏幕上显示一个可见的窗口,对隐藏的窗口只是不进行绘制。如果一个窗口是可见的,用户可通过窗口进行输入以及查看窗口的输出。如果窗口是隐藏的,则相当于它被有效地禁止。隐藏的窗口可以处理来自Windows系统或其它窗口的消息,但不接收用户的输入或显示输出。应用程序可通过IsWindowVisible函数来查询一个窗口是否可见,通过ShowWindow、SetWindowPos、DeferWindowPos、SetWindowPosition函数来显示或隐藏一个窗口。

窗口过程
   窗口过程是一个函数,用来接收和处理所有发送到该窗口的消息,每个窗口类都有一个窗口过程,同一窗口类所创建的窗口共用同一个窗口过程来响应消息。窗口过程一般不会忽略一条消息,如果它不处理某条消息,它就将该消息传回系统进行默认处理,窗口过程是调用DefWindowProc函数来完成的,由它完成一个默认的操作并返回消息结果。

窗口属性
   窗口属性是指由一组由SetProp函数赋给窗口的数据,一个窗口属性一般是特定窗口数据的句柄。用户可利用SetProp函数增加一窗口属性,GetProp函数访问一窗口属性,EnumPropEx函数列出指定的窗口属性,DelPropProc函数删除一窗口属性。


2010版权所有:厦门天锐科技有限公司 法律声明 | 联系我们 | 友情链接   闽ICP备08005521