关于WNDCLASS和CreateWindow函数里面的函数句柄问题

来源:百度知道 编辑:UC知道 时间:2024/05/04 18:30:18
WNDCLASS{.....
HANDLE hInstance;//指向包含该窗口过程程序的实例句柄
.....
}
CreateWindow(.....
HANDLE hInstince;//指向窗口所属应用程序的实例句柄
.....
)
在我们VC++编程中 这两个句柄好像是说指向的是同一个程序的实例句柄
但CreateWindow就是创建的我们所设计的WNDCLASS啊
是不是这两个句柄指的不一样 或者在其他情况下他们不一样
帮忙解释一下
这两个句柄指向的是不是同一个应用程序的实例句柄???
如果是 是不是有点重复了

确实是有重复之嫌。

不过这两个实例句柄中,WNDCLASS中的更为重要,这个值是必须赋的。
至于CreateWindow中的句柄,在WindowXP/NT/2000操作系统下已经是被忽略的了,可以直接传“NULL”过去。

//WNDCLASS包括窗口的若干信息,结构如下
typedef struct tagWNDCLASSA {
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCSTR lpszMenuName;
LPCSTR lpszClassName;
}

HANDLE 是句柄,就是一个值
原型是:typedef void *HANDLE; //就是void *

WNDCLASS里面包含窗口句柄、窗口类型、标题、光标、菜单……若干信息,是窗口创建的依据
HANDLE hInstince 是一个标识,是区分不同窗口、控制窗口、执行若干操作的依据