Win32窗口创建问题?
//定义窗口基本的信息
class kWindow
{
protected:
HWND m_kHwnd; //窗口句柄
WNDCLASS m_kWc;//窗口结构类
MSG m_kMsg; //消息
public:
kWindow(void);
~kWindow(void);
//以参数创建窗口
bool Create(HINSTANCE hInatance,//应用程序句柄
LPSTR sWindowName, //窗口名称
int nWidth = CW_USEDEFAULT, //系统自动设置默认窗口宽度
int nHeight = CW_USEDEFAULT,
DWORD sStyle = WS_OVERLAPPEDWINDOW | WS_VISIBLE); //默认窗口样式
void Show(int nShow);//显示窗口
LRESULT CALLBACK WndProc(HWND hWnd,UINT nMessage,WPARAM wParam,LPARAM lParam);//消息处理函数 void Run(void); //程序主循环接口
virtual void Frame(void) = 0; //游戏图像渲染
};
bool kWindow::Create(HINSTANCE hInatance, LPSTR sWindowName,
int nWidth /* = CW_USEDEFAULT */, int nHeight /* = CW_USEDEFAULT */,
DWORD sStyle /* = WS_OVERLAPPEDWINDOW | WS_VISIBLE */)
{
m_kWc.cbClsExtra = NULL;
m_kWc.cbWndExtra = NULL;
m_kWc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
m_kWc.hCursor = LoadCursor(NULL, IDC_ARROW);
m_kWc.hIcon = LoadIcon(NULL,IDI_APPLICATION);
m_kWc.hInstance = hInatance;
m_kWc.lpfnWndProc = WndProc; m_kWc.lpszClassName = "窗口框架";
m_kWc.lpszMenuName = NULL;
m_kWc.style = NULL;
if(RegisterClass(&m_kWc))
{
m_kHwnd = CreateWindow("窗口框架",sWindowName,sStyle,CW_USEDEFAULT,CW_USEDEFAULT,nWidth,nHeight,NULL,NULL,hInatance,NULL);
SetWindowText(m_kHwnd,sWindowName);
}
if(!m_kHwnd)
return false;
return true;
}
以下是错误:
错误 1 error C3867: “kWindow::WndProc”: 函数调用缺少参数列表;请使用“&kWindow::WndProc”创建指向成员的指针 e:\游戏编程\练习\框架类库例子\框架类库\kwindow.cpp 23 框架类库
错误 2 error C2440: “=”: 无法从“LRESULT (__stdcall kWindow::* )(HWND,UINT,WPARAM,LPARAM)”转换为“WNDPROC” e:\游戏编程\练习\框架类库例子\框架类库\kwindow.cpp 23 框架类库
编译器VS 2008.
如果消息处理函数前设为静态函数,在vc 6.0里能运行成功