1、在CYourApp::InitInstance中注册窗口类
WNDCLASS wc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.hCursor = LoadCursor(IDC_ARROW);
wc.hIcon = NULL;
wc.hInstance = AfxGetInstanceHandle();
wc.lpfnWndProc = ::DefWindowProc; // 注意指定窗口过程
wc.lpszClassName = _T("MyWnd_class"); // 指定窗口类
wc.lpszMenuName = NULL;
wc.style = 0;
AfxRegisterClass(&wc);
2、编写.h文件类的定义
#ifndef MY_WND
#define MY_WND
class CMyWnd : public CWnd
{
public:
// 构造函数、析构函数等公有接口的声明
protected:
// 各消息处理函数的声明
DECLARE_MESSAGE_MAP()
};
#endif
3、编写.cpp文件类的实现
#include "stdafx.h"
#include "MyWnd.h"
// 构造函数、析构函数等函数的实现
BEGIN_MESSAGE_MAP(CMyWnd, CWnd)
// 各消息分流器
END_MESSAGE_MAP()
// 各消息分流器的实现
4、在主程序代码的适当地方调用Create或CreateEx创建窗口。
WNDCLASS wc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.hCursor = LoadCursor(IDC_ARROW);
wc.hIcon = NULL;
wc.hInstance = AfxGetInstanceHandle();
wc.lpfnWndProc = ::DefWindowProc; // 注意指定窗口过程
wc.lpszClassName = _T("MyWnd_class"); // 指定窗口类
wc.lpszMenuName = NULL;
wc.style = 0;
AfxRegisterClass(&wc);
2、编写.h文件类的定义
#ifndef MY_WND
#define MY_WND
class CMyWnd : public CWnd
{
public:
// 构造函数、析构函数等公有接口的声明
protected:
// 各消息处理函数的声明
DECLARE_MESSAGE_MAP()
};
#endif
3、编写.cpp文件类的实现
#include "stdafx.h"
#include "MyWnd.h"
// 构造函数、析构函数等函数的实现
BEGIN_MESSAGE_MAP(CMyWnd, CWnd)
// 各消息分流器
END_MESSAGE_MAP()
// 各消息分流器的实现
4、在主程序代码的适当地方调用Create或CreateEx创建窗口。
博客介绍了在MFC中创建窗口的步骤。首先在CYourApp::InitInstance中注册窗口类,指定窗口过程和窗口类名等;接着编写.h文件进行类的定义,声明公有接口和消息处理函数;再编写.cpp文件实现类,包括构造、析构函数及消息分流器;最后在主程序适当处调用Create或CreateEx创建窗口。
851

被折叠的 条评论
为什么被折叠?



