首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用面向对象的窗口类注册

使用面向对象的窗口类注册
EN

Stack Overflow用户
提问于 2014-10-30 09:38:00
回答 1查看 164关注 0票数 0
代码语言:javascript
运行
复制
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放什么。对于头文件,如下所示

代码语言:javascript
运行
复制
#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

如果我做错了什么,请纠正我。还在学习。对不起,谢谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-30 09:42:01

在任何类之外声明以下内容:

代码语言:javascript
运行
复制
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);

并在其他地方定义它

代码语言:javascript
运行
复制
WndCls.lpfnWndProc = WndProc; // address of your window procedure

WndProc应该有一个开关大小写,以处理需要在特定窗口类函数(C函数或类静态方法)中处理的事件或消息。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26649480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档