窗口类结构体WNDCLASSEX介绍

来源:互联网 发布:爬虫软件干嘛用 编辑:程序博客网 时间:2024/06/09 20:11

窗口类结构体WNDCLASSEX介绍:
一、结构体原型:
typedef struct
{
    UINT cbSize;
    UINT style;
    WNDPROC lpfnWndProc;
    int cbClsExtra;
    int cbWndExtra;
    HINSTANCE hInstance;
    HICON hIcon;
    HCURSOR hCursor;
    HBRUSH hbrBackground;
    LPCTSTR lpszMenuName;
    LPCTSTR lpszClassName;
    HICON hIconSm;
} WNDCLASSEX, *PWNDCLASSEX;
二、成员介绍
1.     cbSize  WNDCLASSEX 的大小。在调用GetClassInfoEx前必须要先设置它值。我们可以用sizeof(WNDCLASSEX)来获得准确的值。
2.   style  窗口类的样式,它的值可以是窗口样式值的任意组合。可以有以下的值:

,细看http://blog.sina.com.cn/s/blog_5059be880100xyp3.html;

3.   lpfnWndProc  指向窗口处理函数(回调函数)。处理窗口事件,像单击鼠标会怎样,右击鼠标会怎样,都是由此函数控制的。

4.   cbClsExtra  为窗口类的额外信息做记录,初始化为0。
5.   cbWndExtra 记录窗口实例的额外信息,系统初始为0.如果程序使用WNDCLASSEX注册一个从资源文件里创建的对话框,则此参数必须设置为DLGWINDOWEXTRA
6.   hInstance:本模块的事例句柄。
7.   hIcon  窗口类的图标,为资源句柄,如果设置为NULL,系统将为窗口提供一个默认的图标。
8.   hCursor 窗口类的鼠标样式,为鼠标样式资源的句柄,如果设置为NULL,系统提供一个默认的鼠标样式。
9.   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
10. lpszMenuName  指向一个以NULL结尾的字符串,同目录资源的名字一样。如果使用整型id表示菜单,可以用MAKEINTRESOURCE定义一个宏。如果它的值为NULL,那么该类创建的窗口将都没有默认的菜单。
11. lpszClassName  指向窗口类的指针,LPSTR类型。
12. hIconSm  小图标的句柄,在任务栏显示的图标,可以和上面的那个一样。
三、实例
char *name="myWin";
WNDCLASSEX win;
      win.cbClsExtra=0;
      win.cbWndExtra=0;
      win.cbSize=sizeof(WNDCLASSEX);
      win.hbrBackground=(HBRUSH)COLOR_HIGHLIGHT;
// win.hbrBackground= (HBRUSH)GetStockObject(RED_BRUSH);
      win.hCursor=NULL;
      win.hIcon=NULL;
      win.hIconSm=NULL;
      win.hInstance=hInstance;
      win.lpfnWndProc=WinProc;
      win.lpszClassName=(LPSTR)name;
      win.lpszMenuName=NULL;
      win.style=CS_HREDRAW | CS_VREDRAW;
0 0