gpt4 book ai didi

c++ - WndProc 赋值问题

转载 作者:行者123 更新时间:2023-11-30 02:06:52 25 4
gpt4 key购买 nike

我正在尝试创建一个自定义 GLWindow 类,其中包括我对 OpenGL 窗口的所有设置。但是,我还想在我的 GLWindow 类中包含用于发送到窗口的消息的 WndProc 回调函数。

GLWindow.h:

class GLWindow
{
private:
HWND hWnd;
HDC hDC;
HGLRC hRC;
public:
GLWindow();

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);

bool Create();

~GLWindow();
}

GLWindow.cpp:

GLWindow::GLWindow()
{

}

bool GLWindow::Create(int width, int height, char * title, bool fullscreen)
{
WNDCLASSEX window;

HINSTANCE hInstance;

hInstance = GetModuleHandle(NULL);
window.cbSize = sizeof(WNDCLASSEX);
window.cbClsExtra = 0;
window.cbWndExtra = 0;
window.hbrBackground = NULL;
window.hIcon = LoadIcon(NULL, IDI_APPLICATION);
window.hIconSm = LoadIcon(NULL, IDI_WINLOGO);
window.hCursor = LoadCursor(NULL, IDC_ARROW);
window.hInstance = hInstance;
window.lpfnWndProc = GLWindow::WndProc; // ERROR
}

GLWindow::~GLWindow()
{

}

错误是“LRESULT (__stdcall GLWindow::*)(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)”类型的值不能分配给“WNDPROC”类型的实体。

我想不通

当 WndProc 与 WinMain 函数共享同一个 .cpp 文件时,我已经让它工作了,但似乎作用域将其抛出。

最佳答案

它应该是一个static 或全局函数。类成员函数需要接收一个名为 this 的附加隐藏参数,因此签名不匹配。

关于c++ - WndProc 赋值问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8469860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com