ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:17.61KB ,
资源ID:7180407      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7180407.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于MFC的计算器C++程序.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于MFC的计算器C++程序.docx

1、基于MFC的计算器C+程序我自己编写的一个计算器程序,能够实现连续加减乘除运算,界面美观,学习简单,希望能帮到大家。工程名为Firsttry,基于对话框设计以下为对话框FirsttryDlg.h和FirsttryDlg.cpp/ FirsttryDlg.h : 头文件/#pragma once/ CFirsttryDlg 对话框class CFirsttryDlg : public CDialogEx/ 构造public: CFirsttryDlg(CWnd* pParent = NULL); / 标准构造函数/ 对话框数据 enum IDD = IDD_FIRSTTRY_DIALOG ; p

2、rotected: 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 OnBnC

3、lickedSub(); 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 OnBnClicked

4、Number7(); 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 v

5、oid 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 stdafx.h#include Firsttry.h#include FirsttryD

6、lg.h#include afxdialogex.h#ifdef _DEBUG#define new DEBUG_NEW#endifCString m_strNum1;CString m_strNum2;CString m_strOperation;int m_iCalcMode;/ 用于应用程序“关于”菜单项的 CAboutDlg 对话框class CAboutDlg : public CDialogExpublic: CAboutDlg();/ 对话框数据 enum IDD = IDD_ABOUTBOX ; protected: virtual void DoDataExchange(CD

7、ataExchange* pDX); / DDX/DDV 支持/ 实现protected: DECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialogEx(CAboutDlg:IDD)void CAboutDlg:DoDataExchange(CDataExchange* pDX) CDialogEx:DoDataExchange(pDX);BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)END_MESSAGE_MAP()/ CFirsttryDlg 对话框CFirsttryDlg:CFirsttryDlg(CWnd

8、* pParent /*=NULL*/) : CDialogEx(CFirsttryDlg:IDD, pParent) m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CFirsttryDlg:DoDataExchange(CDataExchange* pDX) CDialogEx:DoDataExchange(pDX);BEGIN_MESSAGE_MAP(CFirsttryDlg, CDialogEx) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED

9、(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, &CFirsttryD

10、lg: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, &CFirs

11、ttryDlg: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, &

12、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, &CFirstt

13、ryDlg: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 CFir

14、sttryDlg:OnInitDialog() CDialogEx:OnInitDialog(); / 将“关于.”菜单项添加到系统菜单中。 / IDM_ABOUTBOX 必须在系统命令范围内。 ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR); pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); / 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动 / 执行此操作 SetIcon(

15、m_hIcon, TRUE); / 设置大图标 SetIcon(m_hIcon, FALSE); / 设置小图标 / TODO: 在此添加额外的初始化代码 CMenu*pMenu=new CMenu; pMenu-LoadMenu(IDR_CALCMODE); SetMenu(pMenu); pMenu-CheckMenuRadioItem(ID_CALC_DECI,ID_CALC_HEX,ID_CALC_DECI,MF_CHECKED); m_iCalcMode=0; m_strNum1.Empty(); m_strNum2.Empty(); m_strOperation.Empty();

16、GetDlgItem(IDC_NUMBERA)-EnableWindow(FALSE); GetDlgItem(IDC_NUMBERB)-EnableWindow(FALSE); GetDlgItem(IDC_NUMBERC)-EnableWindow(FALSE); GetDlgItem(IDC_NUMBERD)-EnableWindow(FALSE); GetDlgItem(IDC_NUMBERE)-EnableWindow(FALSE); GetDlgItem(IDC_NUMBERF)-EnableWindow(FALSE); return TRUE; / 除非将焦点设置到控件,否则返回

17、 TRUEvoid CFirsttryDlg:OnSysCommand(UINT nID, LPARAM lParam) if (nID & 0xFFF0) = IDM_ABOUTBOX) CAboutDlg dlgAbout; dlgAbout.DoModal(); else CDialogEx:OnSysCommand(nID, lParam); / 如果向对话框添加最小化按钮,则需要下面的代码/ 来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,/ 这将由框架自动完成。void CFirsttryDlg:OnPaint() if (IsIconic() CPaintDC dc(t

18、his); / 用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast(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) /

19、 2; / 绘制图标 dc.DrawIcon(x, y, m_hIcon); else CDialogEx:OnPaint(); /当用户拖动最小化窗口时系统调用此函数取得光标/显示。HCURSOR CFirsttryDlg:OnQueryDragIcon() return static_cast(m_hIcon);void CFirsttryDlg:OnCalcDeci() / TODO: 在此添加命令处理程序代码 CMenu*pMenu=GetMenu(); pMenu-CheckMenuRadioItem(ID_CALC_DECI,ID_CALC_HEX,ID_CALC_DECI,MF_

20、CHECKED); m_iCalcMode=0; m_strNum1.Empty(); m_strNum2.Empty(); m_strOperation.Empty(); GetDlgItem(IDC_NUMBERA)-EnableWindow(FALSE); GetDlgItem(IDC_NUMBERB)-EnableWindow(FALSE); GetDlgItem(IDC_NUMBERC)-EnableWindow(FALSE); GetDlgItem(IDC_NUMBERD)-EnableWindow(FALSE); GetDlgItem(IDC_NUMBERE)-EnableWin

21、dow(FALSE); GetDlgItem(IDC_NUMBERF)-EnableWindow(FALSE);void CFirsttryDlg:OnCalcHex() / TODO: 在此添加命令处理程序代码 CMenu*pMenu=GetMenu(); pMenu-CheckMenuRadioItem(ID_CALC_DECI,ID_CALC_HEX,ID_CALC_HEX,MF_CHECKED); m_iCalcMode=1; m_strNum1.Empty(); m_strNum2.Empty(); m_strOperation.Empty(); GetDlgItem(IDC_NUM

22、BERA)-EnableWindow(TRUE); GetDlgItem(IDC_NUMBERB)-EnableWindow(TRUE); GetDlgItem(IDC_NUMBERC)-EnableWindow(TRUE); GetDlgItem(IDC_NUMBERD)-EnableWindow(TRUE); GetDlgItem(IDC_NUMBERE)-EnableWindow(TRUE); GetDlgItem(IDC_NUMBERF)-EnableWindow(TRUE);void CFirsttryDlg:OnBnClickedNumber1() / TODO: 在此添加控件通知

23、处理程序代码 m_strNum1+=1; GetDlgItem(IDC_RESULT)-SetWindowText(m_strNum1);void CFirsttryDlg:OnBnClickedNumber2() / TODO: 在此添加控件通知处理程序代码 m_strNum1+=2; GetDlgItem(IDC_RESULT)-SetWindowText(m_strNum1);void CFirsttryDlg:OnBnClickedNumber3() / TODO: 在此添加控件通知处理程序代码 m_strNum1+=3; GetDlgItem(IDC_RESULT)-SetWindo

24、wText(m_strNum1);void CFirsttryDlg:OnBnClickedNumber4() / TODO: 在此添加控件通知处理程序代码 m_strNum1+=4; GetDlgItem(IDC_RESULT)-SetWindowText(m_strNum1);void CFirsttryDlg:OnBnClickedNumber5() / TODO: 在此添加控件通知处理程序代码 m_strNum1+=5; GetDlgItem(IDC_RESULT)-SetWindowText(m_strNum1);void CFirsttryDlg:OnBnClickedNumber

25、6() / TODO: 在此添加控件通知处理程序代码 m_strNum1+=6; GetDlgItem(IDC_RESULT)-SetWindowText(m_strNum1);void CFirsttryDlg:OnBnClickedNumber7() / TODO: 在此添加控件通知处理程序代码 m_strNum1+=7; GetDlgItem(IDC_RESULT)-SetWindowText(m_strNum1);void CFirsttryDlg:OnBnClickedNumber8() / TODO: 在此添加控件通知处理程序代码 m_strNum1+=8; GetDlgItem(

26、IDC_RESULT)-SetWindowText(m_strNum1);void CFirsttryDlg:OnBnClickedNumber9() / TODO: 在此添加控件通知处理程序代码 m_strNum1+=9; GetDlgItem(IDC_RESULT)-SetWindowText(m_strNum1);void CFirsttryDlg:OnBnClickedNumber0() / TODO: 在此添加控件通知处理程序代码 m_strNum1+=0; GetDlgItem(IDC_RESULT)-SetWindowText(m_strNum1);void CFirsttryD

27、lg:OnBnClickedNumbera() / TODO: 在此添加控件通知处理程序代码 m_strNum1+=A; GetDlgItem(IDC_RESULT)-SetWindowText(m_strNum1);void CFirsttryDlg:OnBnClickedNumberb() / TODO: 在此添加控件通知处理程序代码 m_strNum1+=B; GetDlgItem(IDC_RESULT)-SetWindowText(m_strNum1);void CFirsttryDlg:OnBnClickedNumberc() / TODO: 在此添加控件通知处理程序代码 m_str

28、Num1+=C; GetDlgItem(IDC_RESULT)-SetWindowText(m_strNum1);void CFirsttryDlg:OnBnClickedNumberd() / TODO: 在此添加控件通知处理程序代码 m_strNum1+=D; GetDlgItem(IDC_RESULT)-SetWindowText(m_strNum1);void CFirsttryDlg:OnBnClickedNumbere() / TODO: 在此添加控件通知处理程序代码 m_strNum1+=E; GetDlgItem(IDC_RESULT)-SetWindowText(m_strN

29、um1);void CFirsttryDlg:OnBnClickedNumberf() / TODO: 在此添加控件通知处理程序代码 m_strNum1+=F; GetDlgItem(IDC_RESULT)-SetWindowText(m_strNum1);void CFirsttryDlg:OnBnClickedAdd() / TODO: 在此添加控件通知处理程序代码 if(m_iCalcMode=0) if(m_strOperation.IsEmpty() m_strOperation=+; m_strNum2=m_strNum1; else long res; if(m_strOperation=+) res=a

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1