——————————————
朱铭雷 2010.3.18
——————————————
typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM);
这行代码的含义是:
定义一个指针类型WNDPROC,这个类型的指针指向一个函数,
这个函数的返回值类型是LRESULT(也就是long),
这个函数的调用约定是CALLBACK(也就是__stdcall规则),
这个函数的参数类型是(HWND, UINT, WPARAM, LPARAM)。
如何使用:
比如我们在通过CreateWindow创建一个窗口之前
需要通过WNDCLASS结构体设计窗体
如:
WNDCLASS wndcls;
wndcls.lpfnWndProc=WinSunProc;
这里,lpfnwndproc是WNDCLASS结构体的一个成员变量,
其声明如下:
WNDPROC lpfnWndProc;
这里面lpfnWndProc就是WNDPROC类型的指针
wndcls.lpfnWndProc=WinSunProc;
这行代码就是将该类型的指针lpfnWndProc指向了一个具体的
所符合的函数WinSunProc
WinSunProc的定义如下,它符合WNDPROC类型指针所指向的函数的类型定义
LRESULT CALLBACK WinSunProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)