我自己编写的一个计算器程序,能够实现连续加减乘除运算,界面美观,学习简单,希望能帮到大家。
工程名为Firsttry,基于对话框设计 以下为对话框FirsttryDlg.h和FirsttryDlg.cpp
// FirsttryDlg.h : 头文件 //
#pragma once
// CFirsttryDlg对话框
classCFirsttryDlg : public CDialogEx {
// 构造 public:
CFirsttryDlg(CWnd* pParent = NULL); // 标准构造函数
// 对话框数据 enum { IDD = IDD_FIRSTTRY_DIALOG }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现 protected: HICON m_hIcon; // 生成的消息映射函数 virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); DECLARE_MESSAGE_MAP()
public: afx_msg void OnBnClickedSub(); afx_msg void OnCalcDeci(); afx_msg void OnCalcHex(); afx_msg void OnBnClickedNumber1(); afx_msg void OnBnClickedNumber2(); afx_msg void OnBnClickedNumber3(); afx_msg void OnBnClickedNumber4(); afx_msg void OnBnClickedNumber5(); afx_msg void OnBnClickedNumber6(); afx_msg void OnBnClickedNumber7(); afx_msg void OnBnClickedNumber8(); afx_msg void OnBnClickedNumber9(); afx_msg void OnBnClickedNumber0(); afx_msg void OnBnClickedNumbera(); afx_msg void OnBnClickedNumberb(); afx_msg void OnBnClickedNumberc(); afx_msg void OnBnClickedNumberd(); afx_msg void OnBnClickedNumbere(); afx_msg void OnBnClickedNumberf(); afx_msg void OnBnClickedAdd(); afx_msg void OnBnClickedMul(); afx_msg void OnBnClickedDiv(); afx_msg void OnBnClickedEqual(); afx_msg void OnBnClickedBackspace(); afx_msg void OnBnClickedClear(); };
// FirsttryDlg.cpp : 实现文件 //
#include \#include \#include \#include \
#ifdef _DEBUG
#define new DEBUG_NEW #endif
CString m_strNum1; CString m_strNum2; CStringm_strOperation; intm_iCalcMode;
// 用于应用程序“关于”菜单项的CAboutDlg对话框
classCAboutDlg : public CDialogEx {
public: CAboutDlg();
// 对话框数据 enum { IDD = IDD_ABOUTBOX }; protected: virtual void DoDataExchange(CDataExchange* pDX);
// 实现 protected: DECLARE_MESSAGE_MAP() };
CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD) { }
voidCAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); }
// DDX/DDV 支持
BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx) END_MESSAGE_MAP()
// CFirsttryDlg对话框
CFirsttryDlg::CFirsttryDlg(CWnd* pParent /*=NULL*/) : CDialogEx(CFirsttryDlg::IDD, pParent) { m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); }
voidCFirsttryDlg::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); }
BEGIN_MESSAGE_MAP(CFirsttryDlg, CDialogEx) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_SUB, &CFirsttryDlg::OnBnClickedSub) ON_COMMAND(ID_CALC_DECI, &CFirsttryDlg::OnCalcDeci) ON_COMMAND(ID_CALC_HEX, &CFirsttryDlg::OnCalcHex) ON_BN_CLICKED(IDC_NUMBER1, &CFirsttryDlg::OnBnClickedNumber1) ON_BN_CLICKED(IDC_NUMBER2, &CFirsttryDlg::OnBnClickedNumber2) ON_BN_CLICKED(IDC_NUMBER3, &CFirsttryDlg::OnBnClickedNumber3) ON_BN_CLICKED(IDC_NUMBER4, &CFirsttryDlg::OnBnClickedNumber4) ON_BN_CLICKED(IDC_NUMBER5, &CFirsttryDlg::OnBnClickedNumber5) ON_BN_CLICKED(IDC_NUMBER6, &CFirsttryDlg::OnBnClickedNumber6) ON_BN_CLICKED(IDC_NUMBER7, &CFirsttryDlg::OnBnClickedNumber7) ON_BN_CLICKED(IDC_NUMBER8, &CFirsttryDlg::OnBnClickedNumber8) ON_BN_CLICKED(IDC_NUMBER9, &CFirsttryDlg::OnBnClickedNumber9) ON_BN_CLICKED(IDC_NUMBER0, &CFirsttryDlg::OnBnClickedNumber0) ON_BN_CLICKED(IDC_NUMBERA, &CFirsttryDlg::OnBnClickedNumbera) ON_BN_CLICKED(IDC_NUMBERB, &CFirsttryDlg::OnBnClickedNumberb) ON_BN_CLICKED(IDC_NUMBERC, &CFirsttryDlg::OnBnClickedNumberc) ON_BN_CLICKED(IDC_NUMBERD, &CFirsttryDlg::OnBnClickedNumberd) ON_BN_CLICKED(IDC_NUMBERE, &CFirsttryDlg::OnBnClickedNumbere) ON_BN_CLICKED(IDC_NUMBERF, &CFirsttryDlg::OnBnClickedNumberf)
ON_BN_CLICKED(IDC_ADD, &CFirsttryDlg::OnBnClickedAdd) ON_BN_CLICKED(IDC_MUL, &CFirsttryDlg::OnBnClickedMul) ON_BN_CLICKED(IDC_DIV, &CFirsttryDlg::OnBnClickedDiv) ON_BN_CLICKED(IDC_EQUAL, &CFirsttryDlg::OnBnClickedEqual) ON_BN_CLICKED(IDC_BACKSPACE, &CFirsttryDlg::OnBnClickedBackspace) ON_BN_CLICKED(IDC_CLEAR, &CFirsttryDlg::OnBnClickedClear) END_MESSAGE_MAP()
// CFirsttryDlg消息处理程序
BOOL CFirsttryDlg::OnInitDialog() { CDialogEx::OnInitDialog(); // 将“关于...”菜单项添加到系统菜单中。
// IDM_ABOUTBOX 必须在系统命令范围内。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { BOOL bNameValid; CStringstrAboutMenu; bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); ASSERT(bNameValid); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } }
// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动 // 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 // TODO: 在此添加额外的初始化代码 CMenu*pMenu=new CMenu;
pMenu->LoadMenu(IDR_CALCMODE); SetMenu(pMenu);
相关推荐: