当前位置:C++技术网 > 资讯 > 三大类窗口,你应该知道的

三大类窗口,你应该知道的

更新时间:2015-06-25 17:29:09浏览次数:1+次

1.桌面窗口
    系统启动时自动创建桌面窗口。桌面窗口是系统定义的窗口,用来绘制屏幕背景,用作所有应用程序的所有窗口的基础。
    桌面窗口使用位图来绘制屏幕背景,使用位图来绘制的图形成为桌面壁纸。系统默认使用注册表中指定的后缀名为bmp的文件作为壁纸。GetDesktopWindow返回桌面窗口句柄。

    系统设置程序,比如控制面板里的项,通过使用SystemParametersInfo函数改变桌面壁纸,传递wAction参数值为SPI_SETDESKWALLPAPER和lpvParam参数值为位图文件名来实现。此函数将加载指定的图片文件,使用位图去绘制屏幕背景,然后将新文件名记录到注册表中。


2.应用窗口
    线程可以创建窗口,且必须包含对应的窗口过程。可以通过EnumThreadWindows函数枚举线程创建的窗口。函数将句柄轮流的传递给每个线程窗口,给应用定义的回调函数EnumThreadWndProc。
    每个基于windows的图形应用程序至少要创建一个窗口,叫做主窗口,作为用户和应用的主要接口界面。
    当启动一个应用时,系统将应用与任务栏的一个按钮进行关联,这个任务栏按钮包含了程序图标和标题。当应用激活时,它的任务栏按钮就展示成按下的状态。如果应用需要创建特定大小的客户区的窗口,使用AdjustWindowRect 和 AdjustWindowRectEx函数可以计算基于需要的客户区大小的窗口大小。 
    顶级窗口通过枚举窗口EnumWindows来获得窗口句柄,在枚举窗口过程EnumWindowsProc中进行处理。
    窗口创建后还可以通过SetWindowLong改变窗口的ID。
    创建窗口数据是在窗口第一次创建时传递给窗口过程进行初始化应用。

如果程序窗口宽度和高度设为0,则系统将其设置为默认的最小窗口大小。要恢复最小尺寸窗口,可以使用带SM_CXMIN和SM_CYMIN标记参数GetSystemMetrics 。


3.控件和对话框

控件和对话框窗口以及消息框。


以上资料都是参考MSDN的说明。