1、新建项目:打开VS2010-文件-新建-项目-MFC应用程序-名称(计算器)。
2、设置应用程序类型:点选为基于对话框,新建一个基于念渗对话框的程序。如下图所示。
3、调整对话框:删除对话框内所有控件,并将对话框调整至合适大小,如下图所示。
4、添加编辑框:添加三友灶个编辑框加数1、加数2、和。ID分别设置IDC_ADD1、IDC_ADD2、IDC_SUM。和的属性Read Only设置为true,其余的默认。如下图所示。
5、添加静态文本:添加五个静态文本控件分别修改Caption为加数1,加数2,加运算符,和、+,=。如下图所示。
6、添加计算按钮:添加一个计算按钮,设置Caption为计算,ID为ID_ADD。如下图所示。
7、编辑好高扮代码:添加如下代码计算结果UpdateData(true)//读取编辑框的值到关联的值变量中m_sum=m_add1+m_add2//计算结果存到编辑框的关联变量中UpdateData(false)//将计算的结果显示到编辑框中。
8、运行测试:编译运行,输入数值分别输入两个加数然后点击计算按钮,效果如下图所示。
1、首先打开VS2013,新建一个VC++ MFC项目,命名为 gongzi。
2、然后在程序类型中,选择“基于对话框”,点击“完成”按钮。
3、然后在d出的对话框中,删除原先的Static Text,添加相应的控件到窗体上。
4、接着在应发工资模搏编辑框右击添加变量。 变量名称是 m_editTotal, 变量类型是 double, 类别为 value,点击“完成”。同样唯码则扣税费用编辑框右击添加变量。 变量名称是 m_editTax, 变量类型是 double, 类别为 value,应扣税款标签右击添加变量。
5、然后双击“计算应扣税款”进入代码,添加代码。
6、最后点击运行,输入对应的数目,按下指棚按钮,查看执行效果。
主代码如下。。这个是我自己做的。就怕你看不懂了。。。不过敢上来问,应该是比较精通的了。。
#include
"stdafx.h"
#include
<stdio.h>
#include
<stdlib.h>
#include
<windows.h>
#include
<windowsx.h>
#include
"拿羡resource.h"
#include
"MainDlg.h"
#define
TURE
1
#define
FALSE
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)
{
return
TRUE
}
BOOL
IsInt(TCHAR*
str)
{
int
i=atoi(str)
TCHAR
strtemp[256]
wsprintf(strtemp,"%i",i)
if(strcmp(str,strtemp)==0)
{
return
TURE
}
else
{
return
FALSE
}
}
TCHAR
str1[256],str2[256],str3[256]
int
i1,i2,i3
void
Main_OnCommand(HWND
hwnd,
int
id,
HWND
hwndCtl,
UINT
codeNotify)
{
switch(id)
{
case
IDC_OK:
{
GetDlgItemText(hwnd,IDC_EDIT1,str1,sizeof(str1))
GetDlgItemText(hwnd,IDC_EDIT2,str2,sizeof(str2))
int
i1,i2,i3
if(!IsInt(str1))
{
MessageBox(hwnd,TEXT("第嫌码一个数不是整数!"),TEXT("错误"),MB_OK|MB_ICONERROR)
return
}
if(!IsInt(str2))
{
MessageBox(hwnd,TEXT("第二个数不是整数!"),TEXT("错误"),MB_OK|MB_ICONERROR)
return
}
i1=atoi(str1)i2=atoi(str2)i3=i1+i2
wsprintf(str3,"%i",i3)
SetDlgItemText(hwnd,IDC_EDIT3,str3)
}
break
case
IDC_OK2:
{
GetDlgItemText(hwnd,IDC_EDIT4,str1,sizeof(str1))
GetDlgItemText(hwnd,IDC_EDIT5,str2,sizeof(str2))
if(!IsInt(str1))
{
MessageBox(hwnd,TEXT("第一个数不是整数!"),TEXT("错误"消者拍),MB_OK|MB_ICONERROR)
return
}
if(!IsInt(str2))
{
MessageBox(hwnd,TEXT("第二个数不是整数!"),TEXT("错误"),MB_OK|MB_ICONERROR)
return
}
i1=atoi(str1)
i2=atoi(str2)
i3=i1-i2
wsprintf(str3,"%i",i3)
SetDlgItemText(hwnd,IDC_EDIT6,str3)
}
break
case
IDC_OK3:
{
GetDlgItemText(hwnd,IDC_EDIT7,str1,sizeof(str1))
GetDlgItemText(hwnd,IDC_EDIT8,str2,sizeof(str2))
if(!IsInt(str1))
{
MessageBox(hwnd,TEXT("第一个数不是整数!"),TEXT("错误"),MB_OK|MB_ICONERROR)
return
}
if(!IsInt(str2))
{
MessageBox(hwnd,TEXT("第二个数不是整数!"),TEXT("错误"),MB_OK|MB_ICONERROR)
return
}
i1=atoi(str1)i2=atoi(str2)
i3=i1*i2
itoa(i3,str3,10)
SetDlgItemText(hwnd,IDC_EDIT9,str3)
}
break
case
IDC_OK4:
{
GetDlgItemText(hwnd,IDC_EDIT10,str1,sizeof(str1))
GetDlgItemText(hwnd,IDC_EDIT11,str2,sizeof(str2))
if(!IsInt(str1))
{
MessageBox(hwnd,TEXT("第一个数不是整数!"),TEXT("错误"),MB_OK|MB_ICONERROR)
return
}
if(!IsInt(str2))
{
MessageBox(hwnd,TEXT("第二个数不是整数!"),TEXT("错误"),MB_OK|MB_ICONERROR)
return
}
i1=atoi(str1)
i2=atoi(str2)
i3=i1/i2
itoa(i3,str3,10)
//else
str3="除不掉"这里仍然有个bug!
SetDlgItemText(hwnd,IDC_EDIT12,str3)
}
break
case
IDC_OK5:
{
GetDlgItemText(hwnd,IDC_EDIT13,str1,sizeof(str1))
i1=atoi(str1)
itoa(i1,str2,2)
SetDlgItemText(hwnd,IDC_EDIT14,str2)
}
break
case
IDC_OK6:
{
GetDlgItemText(hwnd,IDC_EDIT15,str1,sizeof(str1))
if(!IsInt(str1))
{
MessageBox(hwnd,TEXT("第一个数不是整数!"),TEXT("错误"),MB_OK|MB_ICONERROR)
return
}
if(!IsInt(str2))
{
MessageBox(hwnd,TEXT("第二个数不是整数!"),TEXT("错误"),MB_OK|MB_ICONERROR)
return
}
i1=atoi(str1)
itoa(i1,str2,16)
SetDlgItemText(hwnd,IDC_EDIT16,str2)
}
break
default:
break
}
}
void
Main_OnClose(HWND
hwnd)
{
EndDialog(hwnd,
0)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)