void Base::RegisterWnd(HINSTANCE hInstance)
{
ZeroMemory(&WndCls, sizeof(WNDCLASSEX));
WndCls.cbSize = sizeof(WNDCLASSEX);
WndCls.hbrBackground = (HBRUSH)COLOR_WINDOW;
WndCls.hCursor = LoadCursor(NULL, IDC_ARROW);
WndCls.hIcon = LoadIcon(hInstance, NULL);
WndCls.hIconSm = LoadIcon(hInstance, NULL);
WndCls.hInstance = hInstance;
WndCls.lpfnWndProc = CallWindowProc; << What should i put here
}
我正在尝试使用面向对象的方法注册窗口类。我不知道我应该为类cpp中的lpfnWndProc添加什么。 对于头文件,这就是它的样子
#pragma once
#ifndef BASE_H
#define BASE_H
#include <Windows.h>
#include <windowsx.h>
class Base
{
HWND hWnd;
WNDCLASSEX WndCls;
public:
Base();
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
void RegisterWnd(HINSTANCE hInstance);
void CreateWnd();
void ShowWnd();
~Base();
};
#endif
如果我做错了,请纠正我。还在学习。对不起,谢谢:)
答案 0 :(得分:2)
在任何类之外声明以下内容:
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
并在别处定义
WndCls.lpfnWndProc = WndProc; // address of your window procedure
WndProc应该有一个switch-case来处理你需要在特定窗口类函数中处理的事件或消息(C函数或类静态方法)