class CMy113030601381Dlg : public CDialog {private:
CCreditDlg m_dlgCredit;
CIntegerCalculator m_dlgCalc; public:
CMy113030601381Dlg(CWnd* pParent = NULL); // standard constructor enum { IDD = IDD_MY113030601381_DIALOG }; CTabCtrl m_tabPanel; protected:
virtual void DoDataExchange(CDataExchange* pDX); protected:
HICON m_hIcon;
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnSelchangeTab(NMHDR* pNMHDR, LRESULT* pResult); DECLARE_MESSAGE_MAP() };
//CreditDlg.h
class CCreditDlg : public CDialog {
public:
CCreditDlg(CWnd* pParent = NULL); enum { IDD = IDD_CREDIT_DIALOG };
CSpinButtonCtrl m_spinMonth; //旋钮控件 double m_dLoan; //贷款额 int m_nMonth; //还款月数 double m_dPay; //月还款额 double m_dRate; //月利率 double m_dTotalPay; //累计还款 protected:
virtual void DoDataExchange(CDataExchange* pDX); protected:
virtual BOOL OnInitDialog(); afx_msg void OnCalc(); DECLARE_MESSAGE_MAP() };
//IntegerCalculator.h
class CIntegerCalculator : public CDialog {
private:
6
int m_nOperand1; //保存第一个操作数对应的数值 int m_nOperand2; //保存第二个操作数对应的数值 int m_nOperator; //记录运算符标识
BOOL m_bOperator; //判断是否已经单击过运算符 public:
CIntegerCalculator(CWnd* pParent = NULL); // standard constructor void transform();
int octToDec(int value);
enum { IDD = IDD_Integer_Calculator }; int m_nValue; int m_nChoice; protected:
virtual void DoDataExchange(CDataExchange* pDX); protected:
afx_msg void OnB1();//按键“1” afx_msg void OnB2();//按键“2” afx_msg void OnB3();//按键“3” afx_msg void OnB4();//按键“4” afx_msg void OnB5();//按键“5” afx_msg void OnB6();//按键“6” afx_msg void OnB7();//按键“7” afx_msg void OnB8();//按键“8” afx_msg void OnB9();//按键“9” afx_msg void OnB0();//按键“0” afx_msg void OnBc();//按键“C” afx_msg void OnBequal();//按键“=” afx_msg void OnBadd();//按键“+” afx_msg void OnBsub();//按键“-” afx_msg void OnBmul();//按键“*” afx_msg void OnBdiv();//按键“/” afx_msg void OnRadiodec(); afx_msg void OnRadiooct(); afx_msg void OnCheckchoice(); virtual BOOL OnInitDialog(); DECLARE_MESSAGE_MAP() };
//Resource.h //StdAfx.h
//11303060138 李知澳 1.cpp //11303060138 李知澳 1.rc
7
//11303060138 李知澳 1Dlg.cpp
11303060138 李知澳 1Dlg.cpp : implementation file #include \
#include \李知澳 1.h\#include \李知澳 1Dlg.h\class CAboutDlg : public CDialog {
public:
CAboutDlg();
enum { IDD = IDD_ABOUTBOX }; protected:
virtual void DoDataExchange(CDataExchange* pDX); protected:
DECLARE_MESSAGE_MAP() };
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) {}
void CAboutDlg::DoDataExchange(CDataExchange* pDX) {CDialog::DoDataExchange(pDX);}
CMy113030601381Dlg::CMy113030601381Dlg(CWnd* pParent /*=NULL*/) : CDialog(CMy113030601381Dlg::IDD, pParent) {m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);}
void CMy113030601381Dlg::DoDataExchange(CDataExchange* pDX) {
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_TAB, m_tabPanel); }
BOOL CMy113030601381Dlg::OnInitDialog() {
CDialog::OnInitDialog();
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) {
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX); if (!strAboutMenu.IsEmpty()) {
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } }
8
SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon
m_tabPanel.InsertItem(0,\整数计算器\插入标签 m_tabPanel.InsertItem(1,\房贷计算器\//创建两个对话框
m_dlgCalc.Create(IDD_Integer_Calculator,GetDlgItem(IDC_TAB)); m_dlgCredit.Create(IDD_CREDIT_DIALOG,GetDlgItem(IDC_TAB)); CRect rs; //获得IDC_TAB客户区大小 m_tabPanel.GetClientRect(&rs);
rs.top+=1; //调整子对话框在父窗口中的位置 rs.bottom-=20; rs.left+=1; rs.right-=1;
m_dlgCalc.MoveWindow(&rs); //移动子对话框到指定位置 m_dlgCredit.MoveWindow(&rs);
m_dlgCalc.ShowWindow(SW_SHOW); //设置显示 m_dlgCredit.ShowWindow(SW_HIDE); //设置隐藏 m_tabPanel.SetCurSel(0);//设置为默认的选项卡 return TRUE;
void CMy113030601381Dlg::OnSysCommand(UINT nID, LPARAM lParam) {
if ((nID & 0xFFF0) == IDM_ABOUTBOX) {
CAboutDlg dlgAbout; dlgAbout.DoModal(); } else
CDialog::OnSysCommand(nID, lParam); }
void CMy113030601381Dlg::OnPaint() {
if (IsIconic()) {
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; dc.DrawIcon(x, y, m_hIcon); } else
9
CDialog::OnPaint(); }
HCURSOR CMy113030601381Dlg::OnQueryDragIcon() { return (HCURSOR) m_hIcon; }
void CMy113030601381Dlg::OnSelchangeTab(NMHDR* pNMHDR, LRESULT* pResult) {
int CurSel=m_tabPanel.GetCurSel(); //哪个标签被选中 switch(CurSel) {
case 0: //第一个标签被选中
m_dlgCalc.ShowWindow(SW_SHOW);//显示整数计算器对话框 m_dlgCredit.ShowWindow(SW_HIDE);//隐藏房贷计算器对话框 break;
case 1: //第二个标签被选中
m_dlgCalc.ShowWindow(SW_HIDE); m_dlgCredit.ShowWindow(SW_SHOW); break; }
*pResult = 0; }
//CreditDlg.cpp
#include \
#include \李知澳 1.h\#include \#include \
CCreditDlg::CCreditDlg(CWnd* pParent /*=NULL*/) : CDialog(CCreditDlg::IDD, pParent) {
m_dLoan = 0.0; m_nMonth = 0; m_dPay = 0.0; m_dRate = 0.0; m_dTotalPay = 0.0; }
void CCreditDlg::DoDataExchange(CDataExchange* pDX) {
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_SPIN_MONTH, m_spinMonth); DDX_Text(pDX, IDC_LOAN, m_dLoan); DDX_Text(pDX, IDC_MONTH, m_nMonth); DDX_Text(pDX, IDC_PAY, m_dPay); DDX_Text(pDX, IDC_RATE, m_dRate);
DDX_Text(pDX, IDC_TOTALPAY, m_dTotalPay);
10