MFC对话框控件成员变量编程熟悉 - 开发一个简单天线长度计算器
新建一个对话框工程;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对话框控件成员变量编程熟悉 - 开发一个简单天线长度计算器相关推荐
- mfc入门基础(四)对话框添加控件、创建对话框类和为对话框控件添加变量
参考博客:VS2010/MFC编程入门之七(对话框:为对话框添加控件)-软件开发-鸡啄米 VS2010/MFC编程入门之八(对话框:创建对话框类和添加控件变量)-软件开发-鸡啄米 基于基础(三)中写的 ...
- MFC对话框控件访问的七种方式
void CTestDlg::OnButtonAdd() {// TODO: Add your control notification handler code here//动态创建按钮 /* if ...
- python可视化界面编程 pycharm_pycharm开发一个简单界面和通用mvc模板(操作方法图解)...
文章首先使用pycharm的 PyQt5 Designer 做一个简单的界面,然后引入所谓的"mvc框架". 一.设计登录界面 下面开始第一个话题,使用pycharm的 PyQt5 ...
- MFC Tab 控件使用
1. 新建一个基于 dialog 的空 MFC 工程 2. 添加两个新的对话框作为子对话框 接下来两步,每个子对话框都要操作: 2.1 设置各子对话框属性为 "child, none&quo ...
- MFC中如何给控件关联变量
如图所示,在对话框中新建了一个Slider控件(IDC_Slider_test).现在想要给该控件关联一个变量,有两种方法. 一.通过对话框添加控件关联变量: 1. 首先为对话框添加类CDlgTest ...
- MFC中,如何获得对话框控件相对于父窗口(对话框窗口)的位置
在MFC中,如何获得对话框控件相对于父窗口(对话框窗口)的位置: CRect r; pWnd->GetWindowRect(&r); 这样获得的r是控件相对于屏幕的坐标,然后用Scre ...
- MFC常见控件:滚动条控件
MFC常见控件:滚动条控件 1. 滚动条控件简介 滚动条大家也很熟悉了,Windows窗口中很多都有滚动条.列表框和组合框设置了相应属性后,如果列表项显示不下也会出现滚动条.滚动条分为水平滚动条(Ho ...
- MFC high-speed-charting控件使用(添加垂直游标,两个控件的联动)
MFC high-speed-charting控件使用(添加垂直游标,两个控件的联动) 应用场景 最近参与的一个项目中涉及到在一个对话框中添加两个high-speed-charting控件,在两个控件 ...
- VC++开发学习三(对话框控件的绑定)
对话框的控件绑定不难,操作几遍就能掌握 对话框控件不同类型成员变量的绑定: 一个控件只能绑定控件类型和非控件类型,同时使用控件类型绑定时可以通过SetDlgItem进行设置控件的信息,GetDlgIt ...
最新文章
- 详解java集合之LinkedList——底层实现是头尾、双向节点,尽情地问我有没有看过集合源码吧!
- CodeForces - 1353F Decreasing Heights(dp)
- Chrome View Source Code 那些事
- 四元数左乘右乘_四元数、欧拉角学习笔记个人理解
- 还在用Tensorboard?机器学习实验管理平台大盘点
- 双向链表中插入结点并输出
- 2012年回忆录及2013年目标设立
- spring in action2笔记 第一章
- idea结合git教程(拉取项目,提交代码,合代码等等)
- linux内核源码版本查看
- FPGA-Verilog实例----线性反馈移位寄存器(LFSR)
- 使用Docker部署ShareLaTex并简单配置中文环境
- 机器狗变种、磁碟机查杀方法及注意事项
- 怎么用dos系统进入服务器,进入纯DOS系统的步骤分享
- pdf.js插件在线预览pdf文件以及所遇问题解决方案(兼容IE)
- 这个行情,币圈小白该如何生存?
- html转换markdownpad,MarkdownPad2导出HTML支持[TOC]
- 用matlab画标准雷电波,雷电波发生器的MATLAB仿真及参数选取sc.doc
- (十六)从零开始学人工智能-深度学习基础3
- Error creating bean with name ‘sqlSessionFactory’ defined in class path reso