第12讲复杂计算器
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(13)编译、链接。
16
3. 选项卡控件
到目前为止,我们已经设计并实现了两类计 算器,一类是 7.5 节及之前讲述的整数计算 器,一类是前面讲述的房贷计算器。如何 将这两类计算器融合在一个程序中呢? MFC提供选项卡控件来解决这一问题。 选项卡控件类似于一个文件柜上的标签。选 项卡控件由多个页面组成,每个页面都有 一个带有文本的标签,当用户单击一个标 签就显示对应的页面。 17
并在CComplexCalculatorDlg类中添加成员变量: CCReditDlg m_dlgCredit; CIntegerCalculatorDlg m_dlgCalc;
22
用于在一个选项卡控件中插入一项,其函数声明如下: BOOL InsertItem(int nItem, LPCTSTR lpszItem); nItem:新项的索引,从 0开始。 ( 6 )在 CComplexCalculatorDlg 类的 OnInitDialog() 函 lpszItem:新项的标签文本指针。
(1)建立新工程Complex Calculator,进入 ResourceView视图。 (2)在Dialog文件上单击右键,选择Insert Dialog命令,如下图所示。
5
1. 新建对话框
6
1. 新建对话框
( 3 )单击右键,选择 Properties 窗口,修改 ID为IDD_CREDIT_DIALOG。
15
2. 旋钮控件
( 12 )为“计算”按钮添加响应函数,并输 入如下代码: 其中pow(x,y)函数用来计算x的y
次幂,使用该函数时需添加头文 void CCReditDlg::OnCalc() 件math.h { UpdateData(TRUE); double rate = m_dRate/100; //等额本息贷款计算方法 m_dPay = m_dLoan * (rate*pow(1+rate,m_nMonth))/(pow(1+rate,m_nMonth)-1); m_dTotalPay = m_dPay*m_nMonth; UpdateData(FALSE); }
3. 选项卡控件
操作步骤:
( 1 ) 打 开 Complex Calculator 工 程 , 双 击 打 开 IDD_COMPLEXCALCULATOR_DIALOG 对 话 框 资源,修改Caption为“复杂计算器”。在其中添 加 选 项 卡 控 件 , 修 改 ID 为 IDC_TAB , 并 在 其 Properties 中的 More Styles 选项卡中勾选 Bottom , 如下图所示。
18
3. 选项卡控件
19
3. 选项卡控件
( 2 ) 打 开 ClassWizard , 在 Member Variables 选 项 卡 中 为 IDC_TAB 添 加 CTabCtrl类型的关联变量m_tabPanel。
(3)再插入一个新的对话框资源,ID修改为: IDD_INTEGER_CALCULATOR_DIALOG , 然后参考Integer Calculator工程内容,布局 控件,并为其添加CIntegerCalculatorDlg类, 同时完成控件的各种操作。
(4)删除“OK”和“Cancel”按钮。
7
1. 新建对话框
(5)双击该对话框为其添加类,如下图所示, 单击“OK”按钮,输入类名,单击“OK”按 钮。
8
1. 新建对话框
(6)编译、链接。
9
2. 旋钮控件
( 7 ) 在 IDD_CREDIT_DIALOG 对话框中, 添 加 下 图 所 示 的 控 件 , 控 件 ID 分 别 为 旋钮控件需要与其他控件共同使 用,旋钮控件的箭头按钮在按动 IDC_LOAN 、IDC_RATE、IDC_MONTH、 时增大或减少一个数值,该值以 IDC_TOTALPAY 、 IDC_PAY 和 IDC_CALC , 数字的形式显示在一个伙伴窗口 中,用户既可以通过旋钮控件修 除 此 之 外 还 有 一 个 旋 钮 控 件 改伙伴窗口中的数字也可以直接 在伙伴窗口中修改。 IDC_SPIN_MONTH 。
14
2. 旋钮控件
( 11 )在 OninitDialog() 函数中添加如下代码:
BOOL CCReditDlg::OnInitDialog() { CDialog::OnInitDialog(); m_spinMonth.SetRange(0,360);//设置最大 贷款月数为360,即30年 return TRUE; }
20
3. 选项卡控件
( 4 ) 将 IDD_CREDIT_DIALOG 和 IDD_INTEGER_CALCULATOR_DIALOG 对话框资源的属性修改为下图所示。
21
3. 选项卡控件
(5)在Complex CalculatorDlg.h文件头部中添 加: #include "CreditDlg.h" #include “Integer CalculatorDlg.h“
第12讲
复杂计算器
1
2
本讲主要内容
1. 新建对话框 2. 旋钮控件 3. 选项卡控件
3
ቤተ መጻሕፍቲ ባይዱ 1. 新建对话框
前面章节中的所有案例都是在系统默认生成 的对话框上进行开发,此外VC还允许我们 新建对话框并在其上完成设计工作。
本节我们将新建一个对话框,并设计完成一 个房贷计算器界面。
4
1. 新建对话框
操作步骤:
10
2. 旋钮控件
(7)调整控件的 Tab键顺序,如下图,以保 证旋钮控件与伙伴窗口的Tab键顺序相邻, 且大于伙伴窗口的Tab键顺序。
11
2. 旋钮控件
(8)设置旋钮属性,如下图所示。
12
2. 旋钮控件
(9)为控件添加关联变量,如下图所示。
13
2. 旋钮控件
( 10 )为 CCreditDlg 类添加 OninitDialog() 函 数,该函数在系统生成的主对话框中自动 添加(本例为 CComplexCalculatorDlg ), 但在新建对话框中需要手工添加。打开 ClassWizard , 在 Message Maps 中 , Object IDs 选择CCReditDlg , Messages 选 择WM_INITDIALOG,单击“Add Function” 按钮。