在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 }

  最终效果如下:

         

最新文章

  1. python3.5------用户的三次验证
  2. 【温故而知新-Javascript】使用Web存储
  3. _mkdir
  4. Google Java Style Guide
  5. NET 查找程序集路径(CLR关于Assembly的搜索路径的过程)
  6. 7-2 DBA顾问第一次上次操作考试
  7. 排序 O(nlogn)
  8. Backup and Recovery Strategies1
  9. SSIS中Sql Task 获取系统变量
  10. (一)Servlet简介
  11. Hive参数
  12. React 生命周期及使用场景
  13. 分离式部署LNMP
  14. Ubuntu下math库函数编译时未定义问题的解决
  15. python处理转义字符
  16. rsync 同步文件如何指定属主属组和权限
  17. windows 执行bat脚本
  18. PHP-Redis操作
  19. ORA-00845 MEMORY_TARGET not supported on this system解决办法
  20. Leetcode 357

热门文章

  1. [BUUCTF]PWN10——[第五空间2019 决赛]PWN5
  2. 【译】使用 Visual Studio 调试外部源代码
  3. LuoguP4419 [COCI2017-2018#1] Cezar 题解
  4. Python第三周 数据类型:集合set、文件的读写、追加操作。
  5. 【LeetCode】1007. Minimum Domino Rotations For Equal Row 解题报告(Python)
  6. 『学了就忘』vim编辑器基础 — 94、vim编辑器介绍
  7. P4081 [USACO17DEC]Standing Out from the Herd P
  8. element 表格行内进行编辑
  9. 使用 JavaScript 根据消费金额和消费者是否为会员确定折扣,最终核算实际应该支付的金额
  10. 为什么说DI解耦