达内学习笔记——窗口的注册

来源:互联网 发布:fd软件下载 编辑:程序博客网 时间:2024/05/22 12:38

1、窗口的注册

   1.1  窗口类的分类

1.1.1 系统全局的窗口类。比如按钮(BUTTON)、文本("EDIT")编辑框等。不需要注册

1.1.2  运用程序的全局窗口类。可以在运用程序中exe和dll所有模块中使用全局窗口类。

1.1.3 局部窗口类。只能在本模块中使用的窗口类。


  2.2  实现窗口类的注册


      2.2.1 系统全局的窗口类,无需注册,直接使用。

                 使用CreateWindow函数,在CLASSNAME中制定系统已经定义好的窗口类型名称即可。


      2.2.2  应用程序的全局窗口类,需要用代码实现注册,在注册时需要增加CS_GLOBALCLASS定义实现方式:


                     WNDCLASS wc ={0};

    wc.style= CS_GLOBALCLASS|CS_HREDRAW...'

RegisterClss(&wc);


      2.2.3 局部窗口类,不能增加CS_GLOBALCLASS定义

使用 ResgisterClss和RegisterClassEx注册


CS_HREDRAW 窗口水平变化,重新绘制窗口。

CS_WREDRAW 窗口锤子变化,重新绘制窗口

CS_DBCLICK 窗口可以接受鼠标双击消息

CS_GLOBALCLASS 创建应用程序全局窗口类

CS_BYTEALIGNWINDOW 窗口对齐方式,以8的倍数对齐

CS_BYTEALIGNCLIENT 窗口客户区对齐方式

CS_CLASSDC 所有这种类型的窗口使用同一个DC

CS_OWNDC 每个串钩拥有自己的DC

CS_PARENTDC 使用父窗口的DC

CS_SAVEBITS (提高了绘图性能,消耗了资源)使用位图保存窗口界面,可以提高窗口界面的刷新性能


2.2.5 窗口类的附加数据 (cbClsExtra)

在窗口类的数据信息中添加自己的信息

cbClsExtra用于添加信息的内存的大小

SetClassLong  将信息保存到内存中

GetClassLong 将信息从内存中取出

2.2.6 窗口附加数据

在窗口的数据信息中添加自己的信息。

cbWndExtra 用于添加信息的内存的大小

SetWindowLong  将信息保存到内存中

GetWindowLong 将信息从内存中取出


2.4 创建窗口类是如何定位窗口类

2.4.1 查找应用程序局部的窗口类.如果找到,执行2.4.2,否则执行2.4.3

2.4.2 如果找到名称一致的窗口,会比较HINSTANCE句柄。如果一致,就使用找到的窗口类信息创建窗口;

如果不同,继续查找,执行2.4.3。

2.4.3如果未找到名称一致的窗口类,会继续在应用程序全局窗口类中查找。如果找到就执行2.2.4,否则执行2.4.5

2..4.4 全局窗口类知道一致的,使用找到的窗口类信息创建窗口。

2.4.5 系统全局窗口类中查找。如果找到,创建窗口,否则返回失败。



0 0
原创粉丝点击