首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

C++Windows编程之登记窗口类

2013-01-18 
C++Windows编程之注册窗口类我们用Visual Studio创建一个win32项目上会自动生成一个注册窗口类。如下:当窗

C++Windows编程之注册窗口类
我们用Visual Studio创建一个win32项目上会自动生成一个注册窗口类。如下:

当窗口的垂直位置或窗口的高度值发生变化时,是窗口能够重新绘制其用户区域的内容

Constant/value

Description

CS_BYTEALIGNCLIENT

0x1000

 

在X轴方向上以某边界值对齐窗口的用户区域,该属性影响窗口的宽度和显示位置的水平坐标。

CS_BYTEALIGNWINDOW

0x2000

 

在X轴方向上以某个边界值对齐窗口,该属性影响窗口的宽度和显示位置的水平坐标。

CS_CLASSDC

0x0040

为窗口分配一个该类的所有窗口都共享的设备描述表。由于窗口类是进程指定的,一个应用中的多个线程就可能创建属于同一个窗口了的窗口,这些线程也就可以尝试同时使用设备描述表,但此时,系统只允许一个线程成功完成其图形输出。

CS_DBLCLKS

0x0008

用户在属于该窗口类的窗口中双击鼠标时将鼠标双击消息发送到窗口处理函数。打开该函数才支持鼠标双击功能。

CS_DROPSHADOW

0x00020000

Windows XP 中允许窗口的拖拉阴影效果。通过SPI_SETDROPSHADOW打开或关闭该功能。

CS_GLOBALCLASS

0x4000

将窗口类指定为一个应用全局类,所谓的应用全局类就是在exe或dll中定义的窗口类,加载该exe或dll的进程都可以创建属于该窗口类的窗口。

CS_HREDRAW

0x0002

当窗口的水平位置或窗口的宽度值发生变化时,是窗口能够重新绘制其用户区域的内容

CS_NOCLOSE

0x0200

不能使用窗口菜单中的“关闭”功能

CS_OWNDC

0x0020

为该类的每个窗口分配独立的设备描述表。

CS_PARENTDC

0x0080

允许子窗体使用父窗体的设备描述表。

CS_SAVEBITS

0x0800

 

当窗口中部分内容被遮挡时,自动保存图像,当被遮挡的区域恢复时,使用自动保存的图形来进行自动恢复。

CS_VREDRAW

0x0001

lpfnWndProc 指向窗口处理函数(回调函数)。
    处理窗口事件,像单击鼠标会怎样,右击鼠标会怎样,都是由此函数控制的。存储指向窗口处理函数的指针。
cbClsExtra 为窗口类的额外信息做记录,初始化为0。
        存储指向指定分配给窗口类结构的附加字节数。
cbWndExtra记录窗口实例的额外信息,系统初始为0。
    如果程序使用WNDCLASSEX注册一个从资源文件里创建的对话框,则此参数必须设置为DLGWINDOWEXTRA
hInstance存储包含窗口类的窗口处理函数的实例的句柄。窗口类结构已经把窗口的基本属性包含在其中。由于每个程序都有唯一的实例句柄,因此,窗口类的hInstance属性直接表述了该窗口的性质。即每个程序可以设置各自独立的窗口类。
hIcon存储该类窗口的图标的句柄。
      一个Windows程序有两个与其相关的图标,一个是32*32位图的标准图标,称为大图标,另一个是16*16位图的小图标。hIcon存储的是标准图标。该域必须是图标资源的句柄,若为NULL,这系统提供一个默认的图标。
hCursor存贮表示窗口类光标的句柄,该域必须是一个光标资源的句柄。
        一般情况下使用一个内置光标。常见内置光标如下表:
光标宏形状IDC_ARROW   标准箭头IDC_CROSS十字线IDC_HAND手IDC_WAIT沙漏IDC_SIZENS上下双箭头IDC_SIZEWE左右双箭头IDC_SIZEALL四个方向箭头IDC_HELP箭头和问好IDC_IBEAM垂直I字形IDC_SIZENESW右下角和左上角算箭头IDC_SIZENWSE左上角和右下角算箭头hbrBackground窗口类的背景刷,为背景刷句柄,也可以为系统颜色值,如果颜色值已给出,则必须转化为以下的HBRUSH的值

·  COLOR_ACTIVEBORDER

·  COLOR_ACTIVECAPTION

·  COLOR_APPWORKSPACE

·  COLOR_BACKGROUND

·  COLOR_BTNFACE

·  COLOR_BTNSHADOW

·  COLOR_BTNTEXT

·  COLOR_CAPTIONTEXT

·  COLOR_GRAYTEXT

·  COLOR_HIGHLIGHT

·  COLOR_HIGHLIGHTTEXT

·  COLOR_INACTIVEBORDER

·  COLOR_INACTIVECAPTION

·  COLOR_MENU

·  COLOR_MENUTEXT

·  COLOR_SCROLLBAR

·  COLOR_WINDOW

·  COLOR_WINDOWFRAME

·  COLOR_WINDOWTEXT

lpszMenuName存储以空结尾的指定类菜单资源名的字符串指针,类菜单资源名已经在资源文件中进行了定义。
       如果使用整数来表示菜单,则需要使用MAKEEINITSOURCE宏。如果该域为NUILL,属于该窗口类的窗口没有默认菜单。
lpszClassName存储以空结尾的字符串的指针,或存储一个原子元素(ATOM)。
       ATOM本质上也是一个整数,通常用来做唯一标识。如果该域是一个原子元素,那么它必须是以前调用RegisterClass或RegisterClassEx函数所创建的类原子元素,该原子元素存于lpszClassName的低位字节中,其高位必须为0;如果lpzeClassName是一个字符串,则它指定窗口类的名字。
hIConSm存储该类窗口小图标的句柄。
此章节已结束,请看下一章节:Windows编程之创建窗口

热点排行