VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 572|回复: 5

[交流] 初学MFC,写的简易计算器,各位看看

[复制链接]
36_avatar_middle
最佳答案
0 
在线会员 发表于 2019-6-29 20:10:08 | 显示全部楼层 |阅读模式
  1. // TestDlg.cpp : implementation file
  2. //

  3. #include "stdafx.h"
  4. #include "calcul.h"
  5. #include "TestDlg.h"

  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif

  11. TCHAR str1[64]="\0",str2[64]="\0",str6[64]="\0";
  12. int flag=1;
  13. int biaozhi=0;

  14. /////////////////////////////////////////////////////////////////////////////
  15. // CTestDlg dialog


  16. CTestDlg::CTestDlg(CWnd* pParent /*=NULL*/)
  17.         : CDialog(CTestDlg::IDD, pParent)
  18. {


  19.         //{{AFX_DATA_INIT(CTestDlg)
  20.                 // NOTE: the ClassWizard will add member initialization here
  21.         //}}AFX_DATA_INIT
  22. }


  23. void CTestDlg::DoDataExchange(CDataExchange* pDX)
  24. {
  25.         CDialog::DoDataExchange(pDX);
  26.         //{{AFX_DATA_MAP(CTestDlg)
  27.                 // NOTE: the ClassWizard will add DDX and DDV calls here
  28.         //}}AFX_DATA_MAP
  29. }


  30. BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
  31.         //{{AFX_MSG_MAP(CTestDlg)
  32.         ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
  33.         ON_BN_CLICKED(IDC_BUTTON4, OnButton4)
  34.         ON_BN_CLICKED(IDC_BUTTON7, OnButton7)
  35.         ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
  36.         ON_BN_CLICKED(IDC_BUTTON5, OnButton5)
  37.         ON_BN_CLICKED(IDC_BUTTON8, OnButton8)
  38.         ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
  39.         ON_BN_CLICKED(IDC_BUTTON6, OnButton6)
  40.         ON_BN_CLICKED(IDC_BUTTON9, OnButton9)
  41.         ON_BN_CLICKED(IDC_BUTTON10, OnButton10)
  42.         ON_BN_CLICKED(IDC_BUTTON12, OnButton12)
  43.         ON_BN_CLICKED(IDC_BUTTON13, OnButton13)
  44.         ON_BN_CLICKED(IDC_BUTTON14, OnButton14)
  45.         ON_BN_CLICKED(IDC_BUTTON15, OnButton15)
  46.         ON_BN_CLICKED(IDC_BUTTON11, OnButton11)
  47.         //}}AFX_MSG_MAP
  48. END_MESSAGE_MAP()

  49. /////////////////////////////////////////////////////////////////////////////
  50. // CTestDlg message handlers


  51. void Calculate(HWND hwnd)
  52. {
  53.        
  54.         TCHAR str3[64]="\0";
  55.         double i1,i2,i3;
  56.         i1=atof(str1);
  57.         i2=atof(str2);
  58.         switch(biaozhi)
  59.         {
  60.         case 1:i3=i1+i2; break;
  61.         case 2:i3=i1-i2; break;
  62.         case 3:i3=i1*i2; break;
  63.         case 4:
  64.                 {
  65.                         if(0.0==i2)
  66.                         {
  67.                                
  68.                                 MessageBox(hwnd,TEXT("除数不能为0"),TEXT("警告"),MB_OK|MB_ICONWARNING);
  69.                         }
  70.                         else
  71.                                 i3=i1/i2;
  72.                 }break;
  73.         default: break;
  74.         }
  75.         gcvt(i3,10,str3);
  76.         SetDlgItemText(hwnd,IDC_EDIT1,str3);
  77.         if(-1==flag)
  78.                 strcpy(str1,str3);
  79. }

  80. void ShowNum(HWND hwnd,TCHAR str5[2])
  81. {
  82.         int n=0,k;
  83.         strcat(str6,str5);
  84.         k=strlen(str6);

  85.         if('0'==str6[0]&&str6[1]>='0'&&str6[1]<='9')
  86.         {
  87.                 for(int i=0;i<k;i++)
  88.                         str6[i]=str6[i+1];
  89.         }

  90.         if(1==flag)
  91.         {
  92.                 strcpy(str1,str6);
  93.                 SetDlgItemText(hwnd,IDC_EDIT1,str1);
  94.         }
  95.         if(-1==flag)
  96.         {
  97.                 strcpy(str2,str6);
  98.                 SetDlgItemText(hwnd,IDC_EDIT1,str2);
  99.         }
  100. }

  101. void CTestDlg::OnButton1()
  102. {
  103. TCHAR i[2]="1";
  104. ShowNum(this->m_hWnd,i);
  105.        
  106.         // TODO: Add your control notification handler code here
  107.        
  108. }

  109. void CTestDlg::OnButton4()
  110. {
  111. TCHAR i[2]="2";
  112. ShowNum(this->m_hWnd,i);
  113.        
  114.         // TODO: Add your control notification handler code here
  115.        
  116. }

  117. void CTestDlg::OnButton7()
  118. {
  119. TCHAR i[2]="3";
  120. ShowNum(this->m_hWnd,i);
  121.        
  122.         // TODO: Add your control notification handler code here
  123.        
  124. }

  125. void CTestDlg::OnButton2()
  126. {
  127. TCHAR i[2]="4";
  128. ShowNum(this->m_hWnd,i);
  129.        
  130.         // TODO: Add your control notification handler code here
  131.        
  132. }

  133. void CTestDlg::OnButton5()
  134. {
  135. TCHAR i[2]="5";
  136. ShowNum(this->m_hWnd,i);
  137.        
  138.         // TODO: Add your control notification handler code here
  139.        
  140. }

  141. void CTestDlg::OnButton8()
  142. {
  143. TCHAR i[2]="6";
  144. ShowNum(this->m_hWnd,i);
  145.        
  146.         // TODO: Add your control notification handler code here
  147.        
  148. }

  149. void CTestDlg::OnButton3()
  150. {
  151. TCHAR i[2]="7";
  152. ShowNum(this->m_hWnd,i);
  153.        
  154.         // TODO: Add your control notification handler code here
  155.        
  156. }

  157. void CTestDlg::OnButton6()
  158. {
  159. TCHAR i[2]="8";
  160. ShowNum(this->m_hWnd,i);
  161.        
  162.         // TODO: Add your control notification handler code here
  163.        
  164. }

  165. void CTestDlg::OnButton9()
  166. {
  167. TCHAR i[2]="9";
  168. ShowNum(this->m_hWnd,i);
  169.        
  170.         // TODO: Add your control notification handler code here
  171.        
  172. }

  173. void CTestDlg::OnButton10()
  174. {
  175. TCHAR i[2]="0";
  176. ShowNum(this->m_hWnd,i);
  177.        
  178.         // TODO: Add your control notification handler code here
  179.        
  180. }

  181. void CTestDlg::OnButton12()
  182. {
  183. strcpy(str6,"\0");
  184. flag=-1;
  185. biaozhi=1;
  186.        
  187.         // TODO: Add your control notification handler code here
  188.        
  189. }

  190. void CTestDlg::OnButton13()
  191. {
  192. strcpy(str6,"\0");
  193. flag=-1;
  194. biaozhi=2;

  195.         // TODO: Add your control notification handler code here
  196.        
  197. }

  198. void CTestDlg::OnButton14()
  199. {
  200. strcpy(str6,"\0");
  201. flag=-1;
  202. biaozhi=3;
  203.        
  204.         // TODO: Add your control notification handler code here
  205.        
  206. }

  207. void CTestDlg::OnButton15()
  208. {
  209. strcpy(str6,"\0");
  210. flag=-1;
  211. biaozhi=4;


  212.         // TODO: Add your control notification handler code here
  213.        
  214. }

  215. void CTestDlg::OnButton11()
  216. {
  217. Calculate(this->m_hWnd);

  218.         // TODO: Add your control notification handler code here
  219.        
  220. }
复制代码


链接:https://pan.baidu.com/s/1_7ilBI_iIqaVuMBtl7WRYA
提取码:ugvg

很简单,功能也很简单

评分

参与人数 1驿站币 +2 热心值 +2 收起 理由
85_avatar_small kadingxiaodi + 2 + 2

查看全部评分





上一篇:国外找的MFC虚拟列表用法轻松加载100万数据
下一篇:读写Unicode编码文件乱码解决方案
08_avatar_middle
最佳答案
3 
在线会员 发表于 2019-6-30 23:20:46 | 显示全部楼层
兄弟加油。你是明日之星。我为你骄傲。

点评

不过能不能发 工程文件。 或者 格式化代码。你这个,,,,,  发表于 2019-6-30 23:21
58_avatar_middle
最佳答案
43 
online_vip 发表于 2019-7-2 10:12:13 | 显示全部楼层
为什么支持的人少呢,因为代码排版不好,读你代码,比我们自己写一份还难。
36_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2019-7-2 10:43:05 | 显示全部楼层
那就别看了
58_avatar_middle
最佳答案
43 
online_vip 发表于 2019-7-3 18:59:54 | 显示全部楼层

开个玩笑,嘿。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-9-19 16:24

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表