您当前的位置: 首页 > 

顺其自然~

暂无认证

  • 3浏览

    0关注

    1317博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

WNDCLASSEX

顺其自然~ 发布时间:2021-01-21 14:21:18 ,浏览量:3

WNDCLASSEX是一个窗口,最重要的成员是lpfnWndProc。前缀 lpfn 表示该成员是一个指向函数的长指针。在 Win32中由于内存模式是 FLAT 型,所以没有 near 或 far 的区别。

描述

每一个窗口类必须有一个窗口过程,当 Windows 把属于特定窗口的消息发送给该窗口时,该窗口的窗口类负责处理所有的消息,如键盘消息或鼠标消息。由于窗口过程差不多智能地处理了所有的窗口消息循环,所以您只要在其中加入消息处理过程即可。

结构体原型:
typedef struct WNDCLASSEX {
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;

说明

WNDCLASSEX 结构用于注册窗口类

注册实例:

ATOM MyRegisterClass( HINSTANCE hInstance )
{
WNDCLASSEX wcex;
wcex.cbSize = sizeof( WNDCLASSEX );
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = (WNDPROC) WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon( NULL, IDI_APPLICATION );
wcex.hCursor = LoadCursor( NULL, IDC_ARROW );
wcex.hbrBackground = (HBRUSH) GetStockObject( WHITE_BRUSH );
wcex.lpszMenuName = NULL;
wcex.lpszClassName = "My Class";
wcex.hIconSm = LoadIcon( NULL, IDI_WINLOGO );
return RegisterClassEx( &wcex );
}

参数

1.cbSize:

WNDCLASSEX 的大小(申请空间用)。我们可以用sizeof(WNDCLASSEX)来获得准确的值。

2.style:

从这个窗口类派生的窗口具有的风格。您可以用“or”操作符来把几个风格或到一起。

3.lpfnWndProc:

窗口处理函数的指针。

4.cbClsExtra:

指定紧跟在窗口类结构后的附加字节数。

5.cbWndExtra:

指定紧跟在窗口实例的附加字节数。如果一个应用程序在资源中用CLASS伪指令注册一个对话框类时,则必须把这个成员设成DLGWINDOWEXTRA。

6.hInstance:

本模块的实例句柄。

7.hIcon:

图标的句柄。

8.hCursor:

光标的句柄。

9.hbrBackground:

背景画刷的句柄。

10.lpszMenuName:

指向菜单的指针。

11.lpszClassName:

指向类名称的指针。

12.hIconSm:

和窗口类关联的小图标。如果该值为NULL。则把hIcon中的图标转换成大小合适的小图标。

关注
打赏
1662339380
查看更多评论
立即登录/注册

微信扫码登录

0.0390s