软件开发,对自己的程序进行调试很重要,本次文章在上一边随笔的基础上,介绍一下Button控件做显示灯的用法,Button控件的添加和变量设置等可以参考下面的的链接:Visaul Studio 2015 MFC控件使用之--按钮(Button) - 熊来闯一闯 - 博客园 (cnblogs.com),在以上的基础上进一步介绍断点调试;

  • 在xxxDlg.cpp中的OnInitDialog()窗体初始化函数添加Button控件颜色初始化,在程序当中首次对Button控件进行颜色更改,需添加以下两句,否则直接对Button控件进行设置颜色无效;

    mfc_Button_OpenClose.m_bTransparent = FALSE;
    mfc_Button_OpenClose.m_bDontUseWinXPTheme = TRUE;
 1 BOOL CMFCApplication1Dlg::OnInitDialog()
2 {
3 CDialogEx::OnInitDialog();
4
5 // Set the icon for this dialog. The framework does this automatically
6 // when the application's main window is not a dialog
7 SetIcon(m_hIcon, TRUE); // Set big icon
8 SetIcon(m_hIcon, FALSE); // Set small icon
9
10 // TODO: Add extra initialization here
11 //Button按钮初始化
12 mfc_Button_OpenClose.m_bTransparent = FALSE;
13 mfc_Button_OpenClose.m_bDontUseWinXPTheme = TRUE;
14 mfc_Button_OpenClose.SetFaceColor(RGB(255, 255, 255));15
16 return TRUE; // return TRUE unless you set the focus to a control
17 }
  • 在OnClickedMfcbutton1()函数中添加如下事件,即可实现Button按钮的颜色变化
 1 void CMFCApplication1Dlg::OnClickedMfcbutton1()
2 {
3 // TODO: Add your control notification handler code here
4 if (Button_flag == 0)
5 {
6 Button_flag = 1;
7 mfc_Button_OpenClose.SetWindowTextW(L"关闭");
8 mfc_Button_OpenClose.SetFaceColor(RGB(0, 255, 0));//绿色
9 }
10 else
11 {
12 Button_flag = 0;
13 mfc_Button_OpenClose.SetWindowTextW(L"打开");
14 mfc_Button_OpenClose.SetFaceColor(RGB(255, 255, 255));//白色
15 }
16
17
18 }
  • 实现的最终效果如下:

     

  • 使用Visual Studio的断点调试功能,来查看Button_flag变量在点击Button之后的赋值变化,在Button点击事件函数Button_flag变量对应的行数右侧单击,会出现对应的红点,然后点击程序窗口的打开按钮,程序会自动跳转到设置断点了的一行程序;

  • 可以通过菜单栏的单步执行按钮,对所编写的代码一行一行地执行

  • 将鼠标放置到Button_flag变量,会显示当前变量地值,如下图所示,当前值为false,当程序往下继续执行的时候,在Button_flag = 1处,该变量被赋值为true,通过这种调试方式可以追踪变量的变化,在程序有bug的时候,可以很方便的帮忙定位错误。

  软件编程并不是博主的特长,如有解释的不够清楚的地方敬请见谅,刚好最近的项目当中用到了MFC,后续会继续分享在开发当中使用到的东西,希望能在分享中共同进步。

Visual Studio 2015 MFC之Button颜色变化-断点调试(Debug)的更多相关文章

  1. Visual Studio Code 通过 Chrome插件Type Script断点调试Angular 2

    1. 下载Visual Studio Code (https://code.visualstudio.com/) 2. 安装插件Debugger for chrome 3. 确定tsconfig.js ...

  2. visual studio 2010 出现问题,不能设置断点调试了,一运行就未响应,然后程序退出

    经网络查找原因,怀疑是插件问题: 解决方案: 1.工具->扩展管理 2.禁用或卸载VS2010的插件(扩展程序)

  3. 体验Visual Studio 2015 Windows Forms应用程序开发与维护

    昨天到半夜还没有等到Visual Studio 2015的下载地址,实在熬不住就先休息了.北美地区的时区比北京时间要晚一些,今天早上到公司就看到Visual Studio 2015的下载地址,迅速的将 ...

  4. Visual Studio 2015开发Android App问题集锦

    Visual Studio 2015开发Android App 启动调试始终无法完成应用部署的解决方案 创建一个Android App项目后,直接启动调试发现Visual Studio Emulato ...

  5. Visual Studio 2015 开发 ASP.NET 5 有何变化?

    本篇博文目录: ASP.NET 5 模版 ASP.NET 5 目录结构 前端管理工具 无编译开发 Microsoft Git Provider 智能感知和错误信息 Smart Unit Testing ...

  6. Visual Studio 2015 开发 ASP.NET 5 有何变化?(转)

    出处:http://www.cnblogs.com/xishuai/p/visual-studio-2015-preview-asp-net-5-change.html 本篇博文目录: ASP.NET ...

  7. Visual Studio 2015的安装与基本使用

    为什么要使用Visual Studio 2015? 它是中文的.界面友好.自动补全.实时语法错误提示(上图中波浪线部分).单步调试……最重要的社区版是免费的!所以你不必再使用破解的.老旧的的不兼容现代 ...

  8. VS2015--win32project配置的一些想法之在 Visual Studio 2015 中进行调试的同一时候分析性能

    出处: https://msdn.microsoft.com/zh-cn/magazine/dn973013(en-us).aspx 很多开发商花了绝大多数时间获取应用程序才干正常发挥作用.更少的时间 ...

  9. Visual Studio 2015 移动跨平台开发初体验

    微软换了新 CEO 后变化很大,对我们团队最有利的消息就是 Visual Studio 2015 支持移动应用跨平台开发. 还记不记得很早之前,Xamarin 宣布与微软成为合作伙伴的消息.显然,Xa ...

随机推荐

  1. [BUUCTF]PWN3——warmup_csaw_2016

    [BUUCTF]PWN3--warmup_csaw_2016 题目网址:https://buuoj.cn/challenges#warmup_csaw_2016 步骤: 例行检查,64位,没有开启任何 ...

  2. Oracle 函数高级查询

    目录 oracle高级查询 Oracle SQL获取每个分组中日期最新的一条数据 求平均值(为0的参数不均摊) 字符串清除前面的0 判断字符串串是否包含某个字符串 switch 判断 oracle不足 ...

  3. 日程表(Project)

    <Project2016 企业项目管理实践>张会斌 董方好 编著 Project默认打开时,在功能区下面会有一个[日程表],如果不见了,那肯定里什么时候手贱关掉的,不要紧,还可以到[视图] ...

  4. Eclipse切换不同版本的jdk

    var会在java1.8中报错,安装10版本以上的jdk可以解决问题,但是安装后Eclipse无法正常工作,后来发现是Eclipse没有切换版本,在网上找了好多教程都是切换系统变量,后来我发现可以直接 ...

  5. java 输入输出IO流 字节流| 字符流 的缓冲流:BufferedInputStream;BufferedOutputStream;BufferedReader(Reader in);BufferedWriter(Writer out)

    什么是缓冲流: 缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率. 图解: 1.字节缓冲流BufferedInputStr ...

  6. libevent源码学习(15):信号event的处理

    目录信号event处理流程与信号event相关的结构体初始化工作创建一个信号event添加一个信号event信号回调函数信号event的激活       Libevent中的event,主要分为三大类 ...

  7. Add File as a Link on Visual Studio

    https://stackoverflow.com/questions/18963750/add-file-as-a-link-on-visual-studio-debug-vs-publish Ev ...

  8. SpringBoot(SpringMVC)使用addViewControllers设置统一请求URL重定向配置

    只需要在配置中重写 addViewControllers方法 import org.springframework.context.annotation.Configuration; import o ...

  9. JAVA生成订单编号工具类

    JAVA根据时间戳和随机数方式生成订单编号工具类 OrderUtils.java package com.util; import java.text.DateFormat; import java. ...

  10. The 2015 China Collegiate Programming Contest -ccpc-c题-The Battle of Chibi(hdu5542)(树状数组,离散化)

    当时比赛时超时了,那时没学过树状数组,也不知道啥叫离散化(貌似好像现在也不懂).百度百科--离散化,把无限空间中无限的个体映射到有限的空间中去,以此提高算法的时空效率. 这道题是dp题,离散化和树状数 ...