`

WNDCLASS结构介绍

    博客分类:
  • VC
阅读更多

WNDCLASS结构包含了RegisterClass函数注册窗口类时的窗口类属性。
这个结构在使用RegisterClassEx函数注册窗口类时被WNDCLASSEX结构所取代。如果不需为窗口类设置小图标时,仍然可以使用WNDCLASS和RegisterClass。
语法:
typedef struct {
    UINT style;
    WNDPROC lpfnWndProc;
    int cbClsExtra;
    int cbWndExtra;
    HINSTANCE hInstance;
    HICON hIcon;
    HCURSOR hCursor;
    HBRUSH hbrBackground;
    LPCTSTR lpszMenuName;
    LPCTSTR lpszClassName;
} WNDCLASS, *pWNDCLASS;
成员:
style
    描述类风格。该成员可以是“Class Styles”的任意组合。
lpfnWndProc
    指向窗口过程的指针。必须使用CallWindowProc函数调用窗口过程。
cbClsExtra
    表示窗口类结构之后分配的额外的字节数。系统将该值初始化为0.
cbWndExtra
    表示窗口实例之后分配的额外的字节数。系统将该值初始化为0.如果使用资源文件里的CLASS指令创建对话框,并用WNDCLASS注册该对话框时,cbWndExtra必须设置成DLGWNDOWEXTRA。
hInstance
    包含该类实例的句柄,该实例包含了窗口过程。
hIcon
    类图标的句柄。该成员必须为一个图标资源的句柄。如果hIcon为NULL,系统将提供默认图标。
hCursor
    鼠标指针的句柄。改成员必须为一个指针资源的句柄。如果hCursor为NULL,应用程序必须在指针移入应用程序窗口时显式设置指针类型。
hbrBackground
    背景画刷的句柄。该成员或者是用于绘制背景的物理画刷的句柄,或者是一个颜色值。颜色值必须为如下标准系统颜色值(值1必须加到选定颜色中)。如果颜色值给定后,必须将该值转换成如下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
    当调用UnregisterClass时,系统自动删除背景画刷。应用程序不应删除这些画刷。
    当hbrBackground为NULL时,应用程序必须在绘制客户区域时绘制它自己的背景。为了确定背景是否一定要绘制,应用程序或者可以处理 WM_ERASEBKGND消息,或者测试PAINTSTRUCT的fErase成员。PAINTSTRUCT是由BeginPaint函数填充的。
lpszMenuName
    指向NULL结束的字符串,该字符串描述菜单的资源名,如同在资源文件里显示的名字一样。若使用一个整数标识菜单,可以使用MAKEINTRESOURCE宏。如果lpszMenuName为NULL,那么该窗口类的窗口将没有默认菜单。
lpszClassName
    指 向NULL结束的字符串,或者是一个原型(atom)。若该参数是一个原型,它必须是一个有先前调用RegisterClass或者 RegisterClassEx函数产生的类原型。类原型必须作为lpszClassName的低字,高字必须为0.若lpszClassName是一个 字符串,它描述了窗口类名。这个类名可以是由RegisterClass或者RegisterClassEx注册的名字,或者是任何预定义的控件类名。
结构信息
    Header 在winuser.h声明,包含windows.h

分享到:
评论

相关推荐

    WNDCLASS中的style 定义

    在深入探讨WNDCLASS结构中的style成员之前,我们首先需要理解WNDCLASS结构本身在Windows编程中的重要性。WNDCLASS是Windows API中的一个结构体,用于定义窗口类的各种属性,包括窗口的样式、背景色、菜单、窗口过程...

    Windows应用程序的结构[文].pdf

    `WNDCLASS`结构定义了窗口的各种属性,包括窗口样式`style`、窗口过程函数指针`lpfnWndProc`、额外类字节数`cbClsExtra`和`cbWndExtra`、应用程序实例句柄`hInstance`、窗口图标`hIcon`、光标`hCursor`、背景刷`...

    五子棋数据结构课程设计

    在本课程设计中,主要涉及的是“五子棋”游戏的实现以及与之相关的数据结构应用。五子棋是一种双人对弈的策略棋类游戏,目标是在棋盘上连成五子直线(水平、垂直或对角线)以取胜。在设计五子棋程序时,需要理解游戏...

    windows窗口创建机制代码.pdf

    - **设计窗口类**:定义一个WNDCLASS结构,其中包含了窗口的各种属性,如窗口过程函数、窗口样式、图标、光标等。 - **注册窗口类**:使用`RegisterClass`函数将窗口类注册到系统,以便后续创建窗口时可以使用该类。...

    Win32应用程序框架中类的结构

    以上就是Win32应用程序框架中类的结构的基本介绍。在实际项目中,`TestClass`可能会进一步扩展以包含更多的功能,如菜单、对话框、控件等,同时,也会涉及文件操作、网络通信、数据库交互等复杂功能。理解并掌握这种...

    win32 窗口 控件1

    在代码中,我们看到以下WNDCLASS结构的初始化: ```cpp WNDCLASS wndclass; wndclass.cbClsExtra = 0; wndclass.cbWndExtra = 0; wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wndclass.hCursor...

    SDK编程讲座SDK编程讲座SDK编程讲座

    2. **填写WNDCLASS结构**:WNDCLASS结构用于描述窗口类的属性,包括窗口类风格、指向窗口过程函数的指针、附加数据、实例句柄、图标、光标、背景刷、菜单资源名以及窗口类名。在实际编程中,可以通过调整这些参数来...

    c++俄罗斯方块程序

    wndclass.cbSize = sizeof(wndclass); // 结构大小 wndclass.style = CS_HREDRAW | CS_VREDRAW; // 类风格 wndclass.lpfnWndProc = WndProc; // 窗口过程函数 wndclass.cbClsExtra = 0; // 类额外空间 wndclass...

    一篇windows入门文章,值得一看

    设计窗口类需要定义 WNDCLASS 结构,并初始化其 10 个字段。Wndclass 结构的字段包括: * style:窗口类的样式 * lpfnWndProc:窗口消息处理函数 * cbClsExtra:窗口类的额外字节数 * cbWndExtra:窗口的额外字节数...

    API MFC1 Windows应用程序的结构

    窗口类结构`WNDCLASS`用来描述窗口的属性,包括样式、窗口过程指针、额外类和窗口空间、实例句柄、图标、光标、背景刷、菜单名称以及类名。通过`RegisterClass`函数注册窗口类后,可以使用`CreateWindow`函数创建...

    Windows应用程序的结构.pdf

    Windows应用程序的结构是构建在Windows操作系统上的应用软件的基础框架,主要涉及了应用程序的启动、窗口的创建、消息处理等核心概念。以下是对这些知识点的详细解释: 1. **WinMain函数**:Windows应用程序的入口...

    VC中查找窗体的OnKeyDown事件的过程

    WNDCLASS结构定义了一个窗口类。该结构体中包含了窗口类的样式、窗口过程函数指针 lpfnWndProc、类扩展大小 cbClsExtra 和窗口扩展大小 cbWndExtra、类的实例句柄 hInstance、图标 hIcon、光标 hCursor、背景色 ...

    创建Win32窗口源代码

    1. **WNDCLASS结构**:这是定义窗口类的关键,它包含了窗口的样式、回调函数、图标、光标等信息。在`win32_CreateWindow.cpp`中,你可能会看到类似`WNDCLASS wc`的定义,然后设置其成员,如`wc.lpfnWndProc = ...

    Windows创建窗体C++实现

    2. **WNDCLASS结构** 在创建窗体之前,我们需要定义一个`WNDCLASS`结构,它包含了窗体的各种属性,如窗口类名称、图标、背景刷、消息处理函数等。例如: ```cpp WNDCLASS wc; wc.lpfnWndProc = WndProc; // 指向...

    MicrosoftWin32程序参考大全 系列

    例如,WNDCLASS结构定义了一个窗口类,包含了窗口的风格、背景刷、消息处理函数等信息;MSG结构则存储了消息的类型、发送者、接收者以及额外参数。通过使用结构,开发者可以方便地管理和处理复杂的程序状态。 三、...

    用VC编写转动风车的程序代码.txt

    #### 程序结构 Windows应用程序通常包含两个重要的函数:`WinMain` 和 `WndProc`。 - **`WinMain` 函数**:是程序的入口点,负责初始化应用程序,并创建窗口。 - **`WndProc` 函数**:是窗口过程函数,用于处理窗口...

    Win32_SDK窗口程序代码

    在Win32 SDK中,我们使用`WNDCLASS`结构来定义窗口类。例如: ```c WNDCLASS wndclass; wndclass.style = 0; // 默认窗口类型 wndclass.lpfnWndProc = WndProc; // 指向窗口过程函数 wndclass.cbClsExtra = 0; ...

Global site tag (gtag.js) - Google Analytics