在MFC开发当中,比较常用的控件之一便是Button控件了,该控件的除了可以通过点击产生的开关量当作开关来使用,还可以设置其颜色变化当作显示灯,按钮控件的使用相对来比较简单。

  • 打开工程解决方案的资源视图之后,打开Toolbox(工具箱),在工具箱当中找到需要使用的控件,在工具箱当中按钮控件有两个,一个是Button一个是MFC Button Control,本文使用到的是后者;找到所需要的控件之后,将其拖拽进中间的视图编辑窗口;

  • 接下来鼠标点击选中视图编辑窗口中的MfcButton1控件,打开右侧的属性设置栏,可以修改按钮控件的标题文字,也可以修改控件的ID,在每一个视图类里面每一个控件只有一个对应的ID;

  • 为按钮控件添加变量,鼠标单击选中控件图标之后,右键选择Add Variable添加变量选项;

  • 弹出如下界面,按钮控件默认的变量类型(Variable type)是MFCCButton类型,变量名(Variable name)可以随意设置,只要在自己使用的时候知道自己设置的变量名即可;设置完之后选择Finish即可;

  • 设置完按钮控件的变量之后,控件的变量和ID会自动添加到xxxDlg.cpp和xxxDlg.h文件当中,这些变量添加完了,后面我们不用重复定义就可以直接调用这些变量;

  • 控件的基本变量和ID都已经设置好了,接下来便是在程序中进行使用了,本例中通过Button单击事件来实现按钮界面的字体变化;选中对应的控件,右键进入Class Wizard类向导;

  • 在弹出的界面,选择Commands指令窗口找到按钮的ID,然后双击对应的ID;在之后弹出的窗口设置Button单击事件的函数进行命名,完成命名之后确认即可;

  • 确认完成之后,可以看到OnClickedMfcbutton1()函数已经添加到了xxxDlg.cpp当中了,单击Button按钮之后,所需要的功能和逻辑都可以往下面的这个函数里写了;

  • 在Visaul Studio 2015当中每次添加完控件的变量之后都会显示无法识别对应的控件ID,这个错误是这个版本的软件存在的Bug,可以不需要理会,直接编译;确实有强迫症可以关闭工程重新打开就不会提示error了;

  • 创建一个变量Button_flag来记录Button是否按下,在OnClickedMfcbutton1()函数添加如下代码,可实现Button控件的开关功能。

 1 bool Button_flag = 0;
2
3
4 void CMFCApplication1Dlg::OnClickedMfcbutton1()
5 {
6 // TODO: Add your control notification handler code here
7 if (Button_flag == 0)
8 {
9 Button_flag = 1;
10 mfc_Button_OpenClose.SetWindowTextW(L"关闭");
11 }
12 else
13 {
14 Button_flag = 0;
15 mfc_Button_OpenClose.SetWindowTextW(L"打开");
16 }
17
18
19 }

  最终效果如下:

         

Visaul Studio 2015 MFC控件使用之--按钮(Button)的更多相关文章

  1. MFC控件编程之 按钮编辑框.静态文本的使用,以及访问控件的七种方法.

    MFC控件编程之 按钮编辑框.静态文本的使用以及访问控件的七种方法. 一丶按钮.静态文本的通用属性. 他们都有一个属性.就是可以输入标题内容.以及可以自定义控件ID. 创建一个MFC Dlg对话框. ...

  2. Visaul Studio 2015 MFC 应用程序工程创建

    近一段时间开始接触到MFC桌面开发程序,忙完了一段时间的项目开发之后,来整理整理Visaul Studio 2015开发MFC桌面程序的基本功能. 首先从创建软件工程项目开始,Visaul Studi ...

  3. Visual Studio 2015 MFC之Button颜色变化-断点调试(Debug)

    软件开发,对自己的程序进行调试很重要,本次文章在上一边随笔的基础上,介绍一下Button控件做显示灯的用法,Button控件的添加和变量设置等可以参考下面的的链接:Visaul Studio 2015 ...

  4. MFC控件的SubclassDlgItem

    MFC控件的SubclassDlgItem 要在程序中创建新设计的控件,显然不能用自动创建的办法,因为对话框模板对新控件的特性一无所知.程序可以用手工方法创建控件,在调用派生类的Create函数时,派 ...

  5. [MFC] 梳理一个简单的图片处理桌面软件中用到的MFC控件技巧

     前言 前些天应好友之拖,帮忙设计一个简单的图像处理的小软件.朋友把核心算法封装好了,但是是用openCV类似于console的编程环境,要我在此基础上改成MFC桌面程序.下图是做成之后的效果: 我是 ...

  6. MFC控件编程进度条编写

    MFC控件编程进度条编写 一丶进度条编程需要用到的方法 进度条MFC已经帮我们封装好类了. 叫做 CProgressCtrl  进度条编程也很简单. 封装的方法也就那个那几个. GetPos()  获 ...

  7. MFC 控件编程之水平滚动条跟垂直滚动条

    MFC 控件编程之水平滚动条跟垂直滚动条 一点水平滚动条的操作 首先在操作滚动条的时候.我们要知道滚动条的一些属性. 比如我们要设置 最大值 最小值. 以及每次递增的值是多少.都要设置. 所有就有一个 ...

  8. MFC控件编程之组合框跟列表框

    MFC控件编程之组合框跟列表框 一丶简介 如果要使用组合框跟列表框.那么就要知道.组合框列表框是最核心的东西就是索引. 索引是从0开始的. 二丶组合框列表框常用的方法 AddString(字符串) 添 ...

  9. MFC控件编程之复选框单选框分组框

    MFC控件编程之复选框单选框分组框 一丶分组框 分组框 英文叫做 GroubBox 添加了分组框主要就是分组.好看.不重点介绍 二丶单选框 英文: Raido Button 单选框需要注意的事项 1. ...

随机推荐

  1. 新建日历(Project)

    <Project2016 企业项目管理实践>张会斌 董方好 编著 默认的标准日历设置好了以后,问题又来了:出现某些特殊的原因,可能还需要一个与标准日历设置不同的日历,这个可怎么弄? 没关系 ...

  2. Google Earth Engine 批量点击RUN任务,批量取消正在上传的任务

    本文内容参考自: https://blog.csdn.net/qq_21567935/article/details/89061114 https://blog.csdn.net/qq_2156793 ...

  3. 惊天大bug,一把螺丝刀,竟让我有家难回!

    1.回家路上看一地摊,螺丝刀2元一把,买了一个 2.芒格说:"如果你的工具只有一把锤子,你会认为任何问题都是钉子 " 那么当我手里有了一把起子,我看啥都是螺丝钉子. 出租屋里固定门 ...

  4. uwsgi nginx与django之间的关系以及各自的作用

    首先要明确几个概念及其作用(注意大小写的区别): WSGI uWSGI uwsgi Nginx WSGI 是一种协议,不是任何包不是任何服务器,就和 TCP 协议一样.它定义了 Web 服务器和 We ...

  5. JS验证身份证是否符合规则

    调用isIdCardNo(num)  验证通过返回true 错误返回false function isIdCardNo(num) { var factorArr = new Array(7, 9, 1 ...

  6. MAVEN项目打包报错:Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) -> [Help 1]

    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war (default-war) on pr ...

  7. 【LeetCode】1465. 切割后面积最大的蛋糕 Maximum Area of a Piece of Cake After Horizontal and Vertical Cuts

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 找最大间隔之积 日期 题目地址:https://lee ...

  8. 【LeetCode】1408. 数组中的字符串匹配 String Matching in an Array

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 暴力遍历 日期 题目地址:https://leetco ...

  9. 【LeetCode】292. Nim Game 解题报告(Java & Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  10. 【LeetCode】665. 非递减数列 Non-decreasing Array(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 公众号:每日算法题 本文关键词:数组,array,非递减,遍历,python,C++ 目录 题目描述 题目大意 解题方法 一.错误代码 二.举例分析 ...