1.MFC简介
Microsoft Foundation Class微软基础类库,这个类集以层次结构组织起来,其中封装了发部分的Windows API函数和Windows控件,它所包含的功能设计整个Windows操作系统。使用MFC类库和VC++提供的高度可视的应用开发工具,可使应用程序开发更加简单,开发周期大大缩短,提高代码的可靠性和可重用性。
2.任务
新建一个MFC工程后,选在经典MFC界面,下一步下一步...然后编译即可得到一个最基本的MFC工程。该工程存在一个菜单栏,用户区和一个工具栏。在菜单栏中有一个叫做“关于”的菜单项,点击即可弹出一个模式对话框。为了加深对MFC框架的理解,我想在这个工程中添加一个自己的对话框,从而了解到底是哪些部分在操纵着对话框资源的建立和使用。
3.过程
1.为各个需要用到的资源分配ID
2.在主程序窗口类中添加响应函数声明并在.cpp文件中实现
void CCaculatorApp::OnMydlg()
{
CMYDLG MyDlg;
MyDlg.DoModal();
}
3.在.cpp文件的消息映射中添加与自己的对话框有关的消息映射
BEGIN_MESSAGE_MAP(CCaculatorApp, CWinApp)
ON_COMMAND(ID_APP_ABOUT, &CCaculatorApp::OnAppAbout)
ON_COMMAND(ID_32772,&CCaculatorApp::OnMydlg)
// 基于文件的标准文档命令
ON_COMMAND(ID_FILE_NEW, &CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, &CWinApp::OnFileOpen)
// 标准打印设置命令
ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()
3.新建一个对话框类继承CDialogEx,与资源文件中自己的对话框绑定
class CMYDLG : public CDialogEx
{
public:
CMYDLG();
// 对话框数据
enum { IDD = IDD_MYDLG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
实现(若对话框内无空间则不添加下面那条消息映射声明,否则编译出错)
//protected:
// DECLARE_MESSAGE_MAP()
};
4.效果
点击“计算单元”中的“我的对话框”,弹出成功。