需要源码联系邮件:kangxlchn@163.com

1.新建一个MFC工程(基于对话框)

环境:vs2017

统统NEXT

新建完成后打开MFCPrj.cpp文件

打开类试图

每创建一个MFC项目,默认包含3个类,“关于”对话框、主对话框类、初始化项目的App类

双击.rc文件可以打开资源视图

然后双击IDD_MFCPRJ_DIALOG就可以打开可视化编辑的窗口

如果打不开,看这里

打开工具箱就可以往里拖各种控件了。。。

-------------截至这里,基本所有的窗口都打开了,现在开始讲一些代码-----------

2.代码

项目生成后,都会有一个属于App类的theApp对象,对本应用程序实例化。

// CMFCTest1App 构造

CMFCTest1App::CMFCTest1App()
{
// 支持重新启动管理器
m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART; // TODO: 在此处添加构造代码,
// 将所有重要的初始化放置在 InitInstance 中
} // 唯一的一个 CMFCTest1App 对象 CMFCTest1App theApp;

应用程序创建完成,程序开始运行,进入消息循环,windows程序的事件都是消息驱动的,每产生一个消息就触发一个响应事件,消息和事件通过声明消息映射DECLARE_MESSAGE_MAP()联系在一起。 
默认包含三个消息:

 BEGIN_MESSAGE_MAP(CMFCTest1Dlg, CDialogEx)
ON_WM_SYSCOMMAND() //响应控制指令
ON_WM_PAINT() //响应绘图消息,用于刷新窗口
ON_WM_QUERYDRAGICON() //当用户拖动最小化窗口时取得光标
END_MESSAGE_MAP()

当应用程序关闭时,会发送WM_CLOSE消息,程序相应后结束。在类向导(右击工程/ctrl+shift+x)中可以添加消息处理函数。

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

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

3.对话框类

afx_msg宏
afx_msg宏没有任何语法上的实际意义。afx_msg宏表示声明的是一个消息响应函数。
DoDataExchange函数
用于存放各类控件的变量信息
OnInitDialog函数
用于初始化对话框
OnSysCommand系统指令响应函数,默认处理窗口最小化和最大化指令等
OnPaint绘图消息响应函数
调出类向导
项目->类向导,快捷键Ctrl+shilft+X

4.添加按钮

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

为按钮添加事件处理函数

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

在初始化函数OnInitDialog中修改Exit对话框不可用

// TODO:  在此添加额外的初始化代码
m_Exit.EnableWindow(FALSE);

双击按钮就进入代码:添加处理事件

void CMFCPrjDlg::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 CMFCPrjDlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
SendMessage(WM_CLOSE, , );
}

【MFC】学习与问题整合的更多相关文章

  1. MFC 学习之 鼠标移动到Toolbar按钮上显示提示信息(tooltip),状态栏也随之改变

    1.在ResourceView里加入Toolbar资源,命名IDR_TOOLBAR1 2.在主程序的.h文件中加入变量:           CToolBar m_toolbar;CImageList ...

  2. SpringMVC:学习笔记(10)——整合Ckeditor且实现图片上传

    SpringMVC:学习笔记(10)——整合Ckeditor且实现图片上传 配置CKEDITOR 精简文件 解压之后可以看到ckeditor/lang下面有很多语言的js,如果不需要那么多种语言的,可 ...

  3. (转)MyBatis框架的学习(六)——MyBatis整合Spring

    http://blog.csdn.net/yerenyuan_pku/article/details/71904315 本文将手把手教你如何使用MyBatis整合Spring,这儿,我本人使用的MyB ...

  4. 【Java Web开发学习】Spring4整合thymeleaf视图解析

    [Java Web开发学习]Spring4整合thymeleaf视图解析 目录 1.简单介绍2.简单例子 转载:https://www.cnblogs.com/yangchongxing/p/9111 ...

  5. MFC学习笔记1---准备工作

    什么是MFC MFC,全称Microsoft Foundation Classes,微软基础类库,顾名思义,是微软的攻城狮们将一些常用的基础的Windows API 函数用C++的形式封装成类,简化程 ...

  6. SpringBoot学习- 4、整合JWT

    SpringBoot学习足迹 1.Json web token(JWT)是为了网络应用环境间传递声明而执行的一种基于JSON的开发标准(RFC 7519),该token被设计为紧凑且安全的,特别适用于 ...

  7. SpringBoot学习- 3、整合MyBatis

    SpringBoot学习足迹 1.下载安装一个Mysql数据库及管理工具,同类工具很多,随便找一个都可以,我在windows下做测试项目习惯使用的是haosql 它内部集成了MySql-Front管理 ...

  8. Spring Boot 学习笔记(六) 整合 RESTful 参数传递

    Spring Boot 学习笔记 源码地址 Spring Boot 学习笔记(一) hello world Spring Boot 学习笔记(二) 整合 log4j2 Spring Boot 学习笔记 ...

  9. 学习SpringBoot,整合全网各种优秀资源,SpringBoot基础,中间件,优质项目,博客资源等,仅供个人学习SpringBoot使用

    学习SpringBoot,整合全网各种优秀资源,SpringBoot基础,中间件,优质项目,博客资源等,仅供个人学习SpringBoot使用 一.SpringBoot系列教程 二.SpringBoot ...

  10. MFC 学习笔记

    MFC 学习笔记 一.MFC编程基础: 概述: 常用头文件: MFC控制台程序: MFC库程序: 规则库可以被各种程序所调用,扩展库只能被MFC程序调用. MFC窗口程序: 示例: MFC库中类的简介 ...

随机推荐

  1. 使用 JavaScript 实现名为 flatten(input) 的函数,可以将传入的 input 对象(Object 或者 Array)进行扁平化处理并返回结果

    请使用 JavaScript 实现名为 flatten(input) 的函数,可以将传入的 input 对象(Object 或者 Array)进行扁平化处理并返回结果.具体效果如下: const in ...

  2. AtomicReference 原子引用

    AtomicReference和AtomicInteger非常类似,不同之处就在于AtomicInteger是对整数的封装,底层采用的是compareAndSwapInt实现CAS,比较的是数值是否相 ...

  3. 【Django笔记一】windows系统下搭建Django项目

    一.环境版本信息: 操作系统:windows10 Django版本:2.0.5 Python版本:3.6.4 二.创建虚拟环境: 1.为什么要创建虚拟环境: 我们要开发一个新的项目,需要一套独立的Py ...

  4. 关于Date的冷门知识记录

    最近在做项目的时候,用到了Date.toLocaleString来处理当前日期.在这之前,我都是通过get*等方式来获取数据进行拼接.无意间,发现了toLocaleString方法.遂想写一篇文章来记 ...

  5. Java之环境变量配置

    1.首先安装Java的JDK(Java开发工具包 包含JRE(Java运行环境))下载地址URL:www.oracle.com (64位或32位) 安装:傻瓜式安装(点击下一步即可)中间可更改安装目录 ...

  6. lock free

    #include <thread> #include <iostream> #include <mutex> #include <atomic> #in ...

  7. cmd tab自动补全

  8. 【解决】could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network

    在同一套环境中跑了很多个项目都是用 docker-compose的方式启动的,导致创建的自定义网络过多出现下面的报错 Error response from daemon: could not fin ...

  9. HTML5之特效

    2D转换 在二维的平面上做一些变化,使用transform属性 1. 2D转换之移动(translate) 案例: div{ width: 200px; height: 200px; backgrou ...

  10. 用树莓派做电视盒子,安装Android TV系统

    有位朋友问我,如何在树莓派上安装盒子系统,这期我就教大家如何安装Android系统,自动动手做一个机顶盒. 如何安装系统,我已经在 树莓派安装系统 这篇文章中了做介绍,有需要的请看这篇文章.安装系统需 ...