网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月14日漏签0天
mfc吧 关注:17,697贴子:68,013
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 1回复贴,共1页
<<返回mfc吧
>0< 加载中...

求大神帮忙注释一下代码

  • 只看楼主
  • 收藏

  • 回复
  • 19930419jun
  • 初级粉丝
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
RT 感恩不尽


  • 19930419jun
  • 初级粉丝
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include "stdafx.h"
#include <windows.h>
#include <windowsx.h>
#include "resource.h"
#include "MainDlg.h"
#include <math.h>
TCHAR text[50];
TCHAR opt='c';
BOOL have=FALSE,enable=TRUE;
double num1=0,num2=0;
BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog);
HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);
HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);
}
return FALSE;
}
BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
memset(text,'\0',sizeof(TCHAR)*50);
SetDlgItemText(hwnd,IDC_EDIT,TEXT("0."));
return TRUE;
}
void trim()
{
int i=0,j=0;
for (i=0;i<lstrlen(text);i++)
{
if (text[i]!='\0'&&text[i]!='0')
{
j=i;
}
}
for (j=j+1;j<lstrlen(text);j++)
{
text[j]='\0';
}
}
void AppendText(HWND hwnd,TCHAR c)
{
if (lstrlen(text)==1&&text[0]=='0'&&c!='.')
{
text[0]=c;
}
else
{
text[lstrlen(text)]=c;
}
SetDlgItemText(hwnd,IDC_EDIT,text);
}
void result(HWND hwnd)
{
switch(opt)
{
case '+':
num2=num2+num1;
break;
case '-':
num2=num2-num1;
break;
case '*':
num2=num1*num2;
break;
case '/':
if (num1==0)
{
SetDlgItemText(hwnd,IDC_EDIT,TEXT("除数不能为零."));/*除数不能为零*/
enable=FALSE;
return;
}
else
{
num2=num2/num1;
}
break;
default:
num2=num2+num1;
break;
}
num1=0;
sprintf(text,TEXT("%f"),num2);
trim();
SetDlgItemText(hwnd,IDC_EDIT,text);
}
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
TCHAR c[2];
switch(id)
{
case IDC_0:
case IDC_1:
case IDC_2:
case IDC_3:
case IDC_4:
case IDC_5:
case IDC_6:
case IDC_7:
case IDC_8:
case IDC_9:
{
if (enable)
{
GetDlgItemText(hwnd,id,c,2);
AppendText(hwnd,c[0]);
}
}
break;
case IDC_DOT:
{
if (!have&&enable)
{
have=TRUE;
if (lstrlen(text)==0)
{
AppendText(hwnd,'0');
}
AppendText(hwnd,'.');
}
}
break;
case IDC_PLUSS:
case IDC_SUB:
case IDC_MUL:
case IDC_DIV:
{
if(enable)
{
if (lstrlen(text)!=0)
{
num1=atof(text);
result(hwnd);
GetDlgItemText(hwnd,id,c,2);
opt=c[0];
memset(text,'\0',sizeof(TCHAR)*50);
have=FALSE;
}
else
{
GetDlgItemText(hwnd,id,c,2);
opt=c[0];
}
}
}
break;
case IDC_EQUAL:
{
if (lstrlen(text)!=0&&enable)
{
num1=atof(text);
result(hwnd);
memset(text,'\0',sizeof(TCHAR)*50);
have=FALSE;
}
}
break;
case IDC_C:
{
memset(text,'\0',sizeof(TCHAR)*50);
num1=0;
num2=0;
have=FALSE;
enable=TRUE;
opt='c';
SetDlgItemText(hwnd,IDC_EDIT,TEXT("0."));
}
break;
case IDC_CE:
{
memset(text,'\0',sizeof(TCHAR)*50);
num1=0;
have=FALSE;
enable=TRUE;
SetDlgItemText(hwnd,IDC_EDIT,TEXT("0."));
}
break;
case IDC_CHANGE:
{
if (strlen(text)!=0&&enable)
{
num1=atof(text);
num1=-num1;
sprintf(text,TEXT("%f"),num1);
trim();
SetDlgItemText(hwnd,IDC_EDIT,text);
}
}
break;
case IDC_1CX:
{
if (enable)
{
num1=atof(text);
if (num1==0)
{
SetDlgItemText(hwnd,IDC_EDIT,TEXT("除数不能为零."));/*除数不能为零*/
enable=FALSE;
}
else
{
num1=1.0/num1;
sprintf(text,TEXT("%f"),num1);
trim();
SetDlgItemText(hwnd,IDC_EDIT,text);
}
}
}
break;
case IDC_BFH:
{
}
break;
case IDC_SQRT:
{
if (enable)
{
num1=atof(text);
if (num1<0)
{
SetDlgItemText(hwnd,IDC_EDIT,TEXT("被开方数不能为负数."));/*被开方数不能为负数*/
enable=FALSE;
}
else
{
num1=sqrt(num1);
sprintf(text,TEXT("%f"),num1);
trim();
SetDlgItemText(hwnd,IDC_EDIT,text);
}
}
}
break;
case IDC_BACKSPACE:
{
if (lstrlen(text)>0&&enable)
{
text[lstrlen(text)-1]='\0';
if (lstrlen(text)==0)
{
SetDlgItemText(hwnd,IDC_EDIT,TEXT("0."));
}
else
{
SetDlgItemText(hwnd,IDC_EDIT,text);
}
}
}
break;
case IDC_MC:
{
}
break;
case IDC_MR:
{
}
break;
case IDC_MS:
{
}
break;
case IDC_MPLUSS:
{
}
break;
case ID_ABOUT:
{
MessageBox(hwnd,TEXT("制作人:张辉军\t\n学号:B12041316\t\nQQ:1021294347\t\n版本:V1.0"),TEXT("关于计算器"),MB_OK);
/*关于计算器制作人,版本学号联系方式*/
}
break;
case ID_HP:
{
system("start C:\\windows\\help\\calc.chm");
}
break;
default:
break;
}
}
void Main_OnClose(HWND hwnd)
{
EndDialog(hwnd, 0);
}


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1回复贴,共1页
<<返回mfc吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示