MFC开发简单教程

作者: 大华华0504 | 来源:发表于2017-12-09 22:19 被阅读0次

    姓名:李振华 学号:17101223418

    【嵌牛导读】:这篇博客里就将自己所学的一些MFC浅显知识记录一下,方便今后的学习。博客里只记录关键步骤。
    【嵌牛鼻子】:MFC是微软开发的编程框架,方便开发者利用C++ 、C#等进行PC端应用程序的开发。
    【嵌牛提问】:何为MFC?如何利用MFC框架开发界面的程序?
    【嵌牛正文】:

    前言

    一、新建MFC项目

    1. 选择:基于对话框

    2. MFC的使用:

      在共享DLL中使用MFC (程序运行需要dll)
      在静态库中使用MFC (程序较大,运行时不需要dll)

      这里写图片描述
    3. 设置MFC程序主框架样式和标题

      这里写图片描述
    4. 高级功能

      若是用不上“ActiveX控件”可以去掉勾选,若要涉及到网络编程就把“windows嵌套字”选上

      这里写图片描述
    5. 完成

      image.png

    二、MFC程序执行流程

    1. 每创建一个MFC项目,默认包含3个类,“关于”对话框、主对话框类、初始化项目的App类。
    2. 项目生成后,都会有一个属于App类的theApp对象,对本应用程序实例化。
    // CMFCTest1App 构造
    
    CMFCTest1App::CMFCTest1App()
    {
        // 支持重新启动管理器
        m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART;
    
        // TODO:  在此处添加构造代码,
        // 将所有重要的初始化放置在 InitInstance 中
    }
    
    // 唯一的一个 CMFCTest1App 对象
    
    CMFCTest1App theApp;
    
    1. 应用程序创建完成,程序开始运行,进入消息循环,windows程序的事件都是消息驱动的,每产生一个消息就触发一个响应事件,消息和事件通过声明消息映射DECLARE_MESSAGE_MAP()联系在一起。

      默认包含三个消息:

     BEGIN_MESSAGE_MAP(CMFCTest1Dlg, CDialogEx)
        ON_WM_SYSCOMMAND()   //响应控制指令
        ON_WM_PAINT()         //响应绘图消息,用于刷新窗口
        ON_WM_QUERYDRAGICON() //当用户拖动最小化窗口时取得光标
    END_MESSAGE_MAP()
    
    1. 当应用程序关闭时,会发送WM_CLOSE消息,程序相应后结束。在类向导中可以添加消息处理函数。

      这里写图片描述
    void CMFCTest1Dlg::OnClose()
    {
        // TODO:  在此添加消息处理程序代码和/或调用默认值
    
        if (MessageBox(_T("确定退出吗"),_T("提示"),MB_YESNO|MB_ICONWARNING)==IDNO)
        {
            return;
        }
    
        CDialogEx::OnClose();
    }
    
    这里写图片描述

    5.应用程序通过定义,初始化,由winmain开始,注册、创建、显示窗口,消息响应,程序终止,结束运行周期

    三、对话框类

    1. afx_msg宏

      afx_msg宏没有任何语法上的实际意义。afx_msg宏表示声明的是一个消息响应函数。

    2. DoDataExchange函数

      用于存放各类控件的变量信息

    3. OnInitDialog函数

      用于初始化对话框

    4. OnSysCommand系统指令响应函数,默认处理窗口最小化和最大化指令等

    5. OnPaint绘图消息响应函数

    6. 调出类向导

      项目->类向导,快捷键Ctrl+shilft+X

      四、添加按钮

    7. 将默认对话框中的静态文本和原有按钮删除,添加新的按钮1和按钮2,在属性页中可以查看并设置。一般只需要修改两个属性,“Caption”和“ID”,前者是按钮的文本,后者是其唯一标识。

      这里写图片描述
    8. 为按钮添加事件处理函数

    9. 实现按钮的功能

      添加按钮的控件型变量,变量命名一般以“m_”开头,后面部分为按钮功能简要说明。

      这里写图片描述
    10. 在初始化函数OnInitDialog中修改Exit对话框不可用

    // TODO:  在此添加额外的初始化代码
        m_Exit.EnableWindow(FALSE);
    
    1. 添加处理事件
    void CMFCTest1Dlg::OnBnClickedButton1()
    {
        // TODO:  在此添加控件通知处理程序代码
    
        CString str;
        m_Enable.GetWindowTextW(str);
        if (str=="使能")
        {
            m_Exit.EnableWindow(TRUE);
            m_Enable.SetWindowTextW(_T("使不能"));
        }
        else
        {
            m_Exit.EnableWindow(FALSE);
            m_Enable.SetWindowTextW(_T("使能"));
        }
    }
    
    void CMFCTest1Dlg::OnBnClickedButton2()
    {
        // TODO:  在此添加控件通知处理程序代码
        SendMessage(WM_CLOSE, 0, 0);
    }
    

    相关文章

      网友评论

        本文标题:MFC开发简单教程

        本文链接:https://www.haomeiwen.com/subject/ngnpixtx.html