新建一个对话框工程;VC6;VC2010类似;版本不同略有些差别;

新建完如下;对话框默认有三个控件,自己添加的;

右击 确定 按钮,建立类向导;进入类向导;

Class name下拉选中对话框类;类别选错;确定按钮的ID是IDOK,Messages选中BN_CLICKED;看一下,VC框架没有为此按钮添加的默认单击处理函数;

切换到 成员变量 tab,看一下没有为按钮添加的默认成员变量;没有一些框架默认添加的东西,那么直接从界面把默认的三个控件删掉;

编辑界面如下;

下面需要为三个编辑框添加成员变量;来获取和设置编辑框的值;

进入类向导;可以右击对话框控件;也可以从下图菜单;

为什么需要添加成员变量;要了解这个概念;

C#和Java这些来说,窗体上有一个文本框text1,在窗体代码里面直接写 xxx=text1.Text,text1.Text="xxx",就可以获取和设置文本框的值;这是它把底层都封装掉让你直接用的;

VC++的特点是底层的东西封装了一部分,但是不封装完,底层的东西也暴露一部分给你;为了获取和设置窗体上文本框的值,还需要自己额外写几句代码,才能实现;

MFC的所有类都是这样的;这样的话虽然开发界面麻烦;但是若一个底层类,并没有完全封装掉,暴露了一部分内容给你,就可以借此实现更强的功能;

下面来操作成员变量;下图是三个编辑框的ID,Class name下拉别选错,选中主对话框类;成员变量将添加到主对话框类中;

单击 Add Variable;弹出的对话框输入变量名;m_,是mfc默认风格; 类别选中 Value;变量类型下拉选中UINT;

添加三个成员变量如下;

第一个文本框输入光速,第二个文本框输入频率Hz;来计算天线最佳长度,按一些资料, 天线最佳长度 = 光速米 / 频率Hz / 4;

然后为按钮添加单击处理函数;按钮的ID是IDC_BUTTON1;类名下拉选中主对话框类;Messages选中BN_CLICKED;单击Add Function;弹出对话框输入成员函数名;

点 Edit Code 按钮;如下图;自己为对话框类添加一个成员函数OnDOIT();自己的处理代码添加到 //TODO之后;

看下对话框类头文件;在类向导添加成员变量和成员函数后,相应的定义自己添加到头文件;

再看对话框类实现文件;添加了成员变量后;在对话框类构造函数自己添加成员变量初始化代码;并自己添加了对话框数据交换函数DDX_TEXT();这是用来把控件的值换到成员变量和把成员变量的值换到控件的;

按钮处理函数里面添加代码;如下;

void CJsjDlg::OnDOIT() 
{
    // TODO: Add your control notification handler code here
    UpdateData(TRUE);
    m_antLen = m_gs /  m_hz / 4;
    UpdateData(FALSE);
}

第一个文本框输入光速的值;这是固定的;我们在成员变量初始化时设置值为m_gs = 300000000;

代码的含义是;先在编辑框1,编辑框2,输入值;然后执行UpdateData(TRUE),这会把控件输入的值交换到成员变量m_xxx上;

然后计算,m_antLen = m_gs /  m_hz / 4,得出最佳天线长度;

再执行UpdateData(FALSE),这会把代码里面写的m_xxx的值交换到对话框界面上的控件里;这样就把计算结果 m_antLen 显示到第三个编辑框;

运行一下程序;显示结果了;频率为435000时,你需要一个长度为172米的天线;

有些问题;天线长度需要小数;删除并重新添加成员变量;变量类别选为double;

初始化;m_gs = 300000000.0;

再执行代码;结果如下图;

下面来看一下手机的天线长度;手机的频率大体是2.4G;第一个文本框是光速;第二个文本框输入2400000000;DO IT;结果是 0.03125米;也就是3厘米左右;这么小的天线是可以装在手机里,外表看不到了;

MFC对话框控件成员变量编程熟悉 - 开发一个简单天线长度计算器相关推荐

  1. mfc入门基础(四)对话框添加控件、创建对话框类和为对话框控件添加变量

    参考博客:VS2010/MFC编程入门之七(对话框:为对话框添加控件)-软件开发-鸡啄米 VS2010/MFC编程入门之八(对话框:创建对话框类和添加控件变量)-软件开发-鸡啄米 基于基础(三)中写的 ...

  2. MFC对话框控件访问的七种方式

    void CTestDlg::OnButtonAdd() {// TODO: Add your control notification handler code here//动态创建按钮 /* if ...

  3. python可视化界面编程 pycharm_pycharm开发一个简单界面和通用mvc模板(操作方法图解)...

    文章首先使用pycharm的 PyQt5 Designer 做一个简单的界面,然后引入所谓的"mvc框架". 一.设计登录界面 下面开始第一个话题,使用pycharm的 PyQt5 ...

  4. MFC Tab 控件使用

    1. 新建一个基于 dialog 的空 MFC 工程 2. 添加两个新的对话框作为子对话框 接下来两步,每个子对话框都要操作: 2.1 设置各子对话框属性为 "child, none&quo ...

  5. MFC中如何给控件关联变量

    如图所示,在对话框中新建了一个Slider控件(IDC_Slider_test).现在想要给该控件关联一个变量,有两种方法. 一.通过对话框添加控件关联变量: 1. 首先为对话框添加类CDlgTest ...

  6. MFC中,如何获得对话框控件相对于父窗口(对话框窗口)的位置

    在MFC中,如何获得对话框控件相对于父窗口(对话框窗口)的位置: CRect  r; pWnd->GetWindowRect(&r); 这样获得的r是控件相对于屏幕的坐标,然后用Scre ...

  7. MFC常见控件:滚动条控件

    MFC常见控件:滚动条控件 1. 滚动条控件简介 滚动条大家也很熟悉了,Windows窗口中很多都有滚动条.列表框和组合框设置了相应属性后,如果列表项显示不下也会出现滚动条.滚动条分为水平滚动条(Ho ...

  8. MFC high-speed-charting控件使用(添加垂直游标,两个控件的联动)

    MFC high-speed-charting控件使用(添加垂直游标,两个控件的联动) 应用场景 最近参与的一个项目中涉及到在一个对话框中添加两个high-speed-charting控件,在两个控件 ...

  9. VC++开发学习三(对话框控件的绑定)

    对话框的控件绑定不难,操作几遍就能掌握 对话框控件不同类型成员变量的绑定: 一个控件只能绑定控件类型和非控件类型,同时使用控件类型绑定时可以通过SetDlgItem进行设置控件的信息,GetDlgIt ...

最新文章

  1. 详解java集合之LinkedList——底层实现是头尾、双向节点,尽情地问我有没有看过集合源码吧!
  2. CodeForces - 1353F Decreasing Heights(dp)
  3. Chrome View Source Code 那些事
  4. 四元数左乘右乘_四元数、欧拉角学习笔记个人理解
  5. 还在用Tensorboard?机器学习实验管理平台大盘点
  6. 双向链表中插入结点并输出
  7. 2012年回忆录及2013年目标设立
  8. spring in action2笔记 第一章
  9. idea结合git教程(拉取项目,提交代码,合代码等等)
  10. linux内核源码版本查看
  11. FPGA-Verilog实例----线性反馈移位寄存器(LFSR)
  12. 使用Docker部署ShareLaTex并简单配置中文环境
  13. 机器狗变种、磁碟机查杀方法及注意事项
  14. 怎么用dos系统进入服务器,进入纯DOS系统的步骤分享
  15. pdf.js插件在线预览pdf文件以及所遇问题解决方案(兼容IE)
  16. 这个行情,币圈小白该如何生存?
  17. html转换markdownpad,MarkdownPad2导出HTML支持[TOC]
  18. 用matlab画标准雷电波,雷电波发生器的MATLAB仿真及参数选取sc.doc
  19. (十六)从零开始学人工智能-深度学习基础3
  20. Error creating bean with name ‘sqlSessionFactory’ defined in class path reso

热门文章

  1. ppt式 html模板,html10使用模板统一页面风格.ppt
  2. Get Started with Omni-Channel
  3. STM32F105的时钟配置
  4. CTFshow 命令执行 web42
  5. CTFshow 命令执行 web32
  6. Centos下本地连接postgresql时出现认证错误的问题
  7. 终极解决方式——找到占用U盘的程序
  8. Python进阶07 函数对象
  9. 利用非递归方法实现二叉树的先序遍历
  10. 合并两个有序链表(C++)