什么是MFC,用MFC建立一个简单的计算器应用程序

定义

定义:微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。


定义中的重点内容有以下4点:
1. MFC是一种类库
2. 以C++类的形式进行封装
3. 包含一个应用程序框架
4. MFC类库中含有很多句柄,控件,组件封装类

举例

下边我们用MFC建立一个简单的计算机对话框,来体会一下什么是MFC,怎样建立一个典型的MFC应用程序。

  • 建立MFC应用程序框架

    • 双击桌面上的Visual C++ 6.0应用程序图标
    • 点击file->new,弹出new对话框。在projects栏中左键单击选择MFC AppWizard[exe],project name位置输入工程名字(这里我们输入test),location位置选择工程存放的位置(这里选择F:\MYCODE)
      什么是MFC,用MFC建立一个简单的计算器应用程序_第1张图片
    • 点击OK,选择single document
      什么是MFC,用MFC建立一个简单的计算器应用程序_第2张图片
    • 点击next,不做任何操作。
      什么是MFC,用MFC建立一个简单的计算器应用程序_第3张图片
    • 点击next,不做任何操作。
      什么是MFC,用MFC建立一个简单的计算器应用程序_第4张图片
    • 点击finish
      什么是MFC,用MFC建立一个简单的计算器应用程序_第5张图片
    • 点击OK。这时我们已经建立了一个空的MFC窗口应用程序。
      什么是MFC,用MFC建立一个简单的计算器应用程序_第6张图片
    • 现在我们看一看一个空的MFC应用程序框架,编辑,运行的结果:
      什么是MFC,用MFC建立一个简单的计算器应用程序_第7张图片
  • 构造一个简单的计算器界面
    • 点击资源视图,点击“+”打开test resourses,点击“+”打开Dialog。
      什么是MFC,用MFC建立一个简单的计算器应用程序_第8张图片
    • 右键单击Dialog,左键点击选择insert,弹出对话框
      什么是MFC,用MFC建立一个简单的计算器应用程序_第9张图片
    • 左键单击选择Dialog,点击new,新建一个对话框
      什么是MFC,用MFC建立一个简单的计算器应用程序_第10张图片
    • 左键分别选中新建对话框控件的OK,CANCEL按钮,点击delete按键删除。然后从control是列表中选中控件加入。
      什么是MFC,用MFC建立一个简单的计算器应用程序_第11张图片
    • 列右键点击控件,选择properties,改变控件的ID,标题。
      什么是MFC,用MFC建立一个简单的计算器应用程序_第12张图片
  • 现在我们在原有的空白窗口的菜单栏中,加入一个compute选项,当我们点击compute时就会弹出我们新建的计算器对话框。
    • 点击资源视图中的Menu中的IDR_MAINFRAME,在编辑框中出现我们的菜单选项。
      什么是MFC,用MFC建立一个简单的计算器应用程序_第13张图片
    • 右键点击菜单栏资源“帮助”后边的空白处,选择properties,在caption(标题)处输入“compute”,取消pop-up的选中,在ID处输入“IDC_compute”
      什么是MFC,用MFC建立一个简单的计算器应用程序_第14张图片
    • 关闭properties对话框,右键单击compute,选择class wizard。弹出class wizard对话框,在project处选择test(即工程名),classname处输入“cmainframe”,object IDs处选择“IDC_compute”,message处选择“commend”,点击add function->OK->edit code.
      什么是MFC,用MFC建立一个简单的计算器应用程序_第15张图片
    • 这时弹出了MainFrame.cpp文件代码,其中有一个空的oncompute函数。我们点击菜单栏中的compute时,会调用oncompute函数
      什么是MFC,用MFC建立一个简单的计算器应用程序_第16张图片
    • 这时我们希望调用oncompute函数时,弹出我们的计算器对话框。这就需要创建一个计算器对话框的类,并由此类定义一个计算器对象。首先,我们先为我们的计算器对话框建立一个类,点击资源视图中的IDD_DIALOG1打开计算器对话框编辑视图,左键双击对话框弹出一个对话框问是否要新建一个类。
      什么是MFC,用MFC建立一个简单的计算器应用程序_第17张图片
    • 点击OK,弹出一个new class对话框,我们在name(新建的类名)中输入“Ccompute”,在base class中选择“CDialog”
      什么是MFC,用MFC建立一个简单的计算器应用程序_第18张图片
    • 点击OK,在class wizard中点击OK。这时我们发现在我们的类视图中出现了一个新类Ccompute。
      什么是MFC,用MFC建立一个简单的计算器应用程序_第19张图片
    • 在MainFrame.cpp中声明类Ccompute,并建立Ccompute的对象com1.
      什么是MFC,用MFC建立一个简单的计算器应用程序_第20张图片
    • 在oncompute函数中编辑弹出计算器对话框的执行语句。
      什么是MFC,用MFC建立一个简单的计算器应用程序_第21张图片
    • 点击编译,运行,在弹出窗口的菜单栏点击compute
      什么是MFC,用MFC建立一个简单的计算器应用程序_第22张图片
    • 这时候我们输入num1和num2以后,点击add,sub,multi,div。result位置并没有出现结果,这是因为我们并没有为按键add,sub,multi,div添加相应的函数,没有为num1,num2,result关联相应的变量。首先我们先为num1,num2,result三个编辑框关联相应的变量:1.打开资源视图中Dialog中的IDC_DIALOG1 2.右键单击num1右侧的编辑框,选择class wizard->member variables 3.project位置选择test,class name位置选择Ccompute,control ID位置选择 IDC_num1 4.点击右侧按钮add variables,弹出add member variable对话框 5.在member variable name位置输入 m_num1,category位置选择value,variable type位置选择int,点击OK 6.同理,按照以上步骤关联num2,result
      什么是MFC,用MFC建立一个简单的计算器应用程序_第23张图片
    • 为按键add,sub,multi,div生成函数,编写代码。1.右键点击add按键选择class wizard->message maps 2.在project位置选择test,class name位置选择Ccompute,object ID位置选择 IDC_add,messages位置选择 BN_CLICKED 3.点击右侧按键add function,点击OK,点击edit code 4.在函数onadd中输入以下代码 5.同理,为sub,multi,div生成函数,并输入代码:
    void Ccompute::Onadd() 
{
    // TODO: Add your control notification handler code here
    UpdateData(TRUE);
    m_result=m_num1+m_num2;
    UpdateData(FALSE);
}
void Ccompute::Onsub() 
{
    // TODO: Add your control notification handler code here
    UpdateData(TRUE);
    m_result=m_num1-m_num2;
    UpdateData(FALSE);
}
void Ccompute::Onmulti() 
{
    // TODO: Add your control notification handler code here
    UpdateData(TRUE);
    m_result=m_num1*m_num2;
    UpdateData(FALSE);
}
void Ccompute::Ondiv() 
{
    // TODO: Add your control notification handler code here
    UpdateData(TRUE);
    m_result=m_num1/m_num2;
    UpdateData(FALSE);  
}
  • 编译运行,点击菜单栏中的compute,输入num1,num2。分别点击add,sub,multi,div。观察运行结果

总结

根据前边的内容,可以知道。MFC是一个可视化的建立窗口应用程序的微软公司开发的基础类库。他有以下几个优点:

  1. 工程刚刚创建已经有一个基本的程序框架
  2. 开发过程可视化,有条理

你可能感兴趣的:(MFC学习笔记,windows,应用)