实验二熟悉MFC源程序基本结构.doc
文本预览下载声明
实验二 熟悉 MFC 源程序基本结构
实验目的
(1) 熟悉 Visual Studio 开发环境;
(2) 熟悉 MFC 源程序基本结构;
实验内容
创建一个空白的 Win32 Application 应用程序,设置在静态链接库或者 DLL 中
使用 MFC,建立文件 Demo.h 和 Demo.cpp 并加入到项目中,按照下面规定的步骤手
工输入代码,实现一个 MFC 应用程序。
1、在 Demo.h 中,基于 CFrameWnd 派生新类 CDemoWnd。
#include afxwin.h
class CDemoWnd:public CFrameWnd
{
public:
CDemoWnd();
~CDemoWnd();
};
2、在 Demo.cpp 中,实现 CDemoWnd 类的构造函数和析构函数。
#include Demo.h
// 构造函数
CDemoWnd::CDemoWnd()
{
}
// 析构函数
CDemoWnd::~CDemoWnd()
{
}
3、在 Demo.h 中,基于 CWinApp 类派生新类 CDemoApp,声明 InitInstance()
函数,并定义 CDemoApp 的对象 theApp 为全局对象。
class CDemoApp:public CWinApp
{
public:
BOOL InitInstance();
};
CDemoApp theApp;
4、在 Demo.cpp 中,重载 CDemoApp 类的 InitInstance()函数,完成主窗口对
象的创建和初始化。
BOOL CDemoApp::InitInstance()
{
CDemoWnd *pMainWnd = new CDemoWnd();
pMainWnd-Create(NULL,MFC 演示程序);
pMainWnd-ShowWindow(m_nCmdShow);
pMainWnd-UpdateWindow();
m_pMainWnd = pMainWnd;
return TRUE;
}
5、编译并运行程序。
实验结果
列出源程序清单,以及程序的运行结果;
头文件:
#include afxwin.h
class CDemoWnd:public CFrameWnd
{
public:
CDemoWnd();
~CDemoWnd();
};
class CDemoApp:public CWinApp
{
public:
BOOL InitInstance();
};
CDemoApp theApp;
源文件:
#include Demo.h
// 构造函数
CDemoWnd::CDemoWnd()
{
}
// 析构函数
CDemoWnd::~CDemoWnd()
{
}
BOOL CDemoApp::InitInstance()
{
CDemoWnd *pMainWnd = new CDemoWnd();
pMainWnd-Create(NULL,MFC 演示程序);
pMainWnd-ShowWindow(m_nCmdShow);
pMainWnd-UpdateWindow();
m_pMainWnd = pMainWnd;
return TRUE;
}
运行结果:
总结 Windows 源程序的结构特点,说明各个主要程序段的作用;
Windows的应用程序具有相对固定的框架,其中由入口函数WinMain、窗口函数WndProc构成基本框架,并包含各种数据类型、数据结构与函数等。入口函数Winmain和窗口函数是Windows应用程序的主体。在MFC编程中,我们主要使用CWinApp和CFrameWnd两个类。
CWinApp 类实现 WinMain 函数的功能。MFC 将 Windows 应用程序从开始运行、
消息传递到结束运行所需的各步骤均封装在 CWinApp 类中,CWinApp 类表示 MFC 应
用程序的应用对象。 用户需要声明 CWinApp 派生类为全局对象。用户从 CWinApp
派生了一个应用程序类之后,需要重载 InitInstance 成员函数来创建应用程序的
主窗口对象。
CFrameWnd 对象提供应用程序主窗口的功能,在派生类中可以使用数据成员保
存数据,使用成员函数处理消息和实现其他功能。
总结实验的心得体会,实验中遇到的困难以及解决的方法等。
由于未学过C++,也没有使用过Visual Studio,所以在实验中出现了很多问题。
error C2664: “CFrameWnd::Create”: 不能将参数 2 从“const char [13]”转换为“LPCTSTR”。对于这个问题,需要将项目/属性/配置属性/常规/字符集,改为使用多字节字符集
显示全部