当前位置:我的异常网» C语言 » 用C语言做个简单的计算机,上面是代码,请教上资源
用C语言做个简单的计算机,上面是代码,请教上资源文件在哪里编写,要新建什么文件
www.myexceptions.net 网友分享于:2013-07-30 浏览:53次
用C语言做个简单的计算机,下面是代码,请问下资源文件在哪里编写,要新建什么文件
还是先做界面,先写资源文件。
/***********MyCalculator.rc**************/
#include
#defineICO_MAIN0X1000
#defineDLG_MAIN1
#define IDB_00X4400//0
#define IDB_10X4401//1
#define IDB_20X4402//2
#define IDB_30X4403//3
#define IDB_40X4404//4
#define IDB_50X4405//5
#define IDB_60X4406//6
#define IDB_70X4407//7
#define IDB_80X4408//8
#define IDB_90X4409//9
#define IDB_PLUS0X4410//+
#define IDB_SUB0X4411//-
#define IDB_EQU0X4412//=
#define IDB_DOT0X4413//.
#define IDB_PAS0X4414//正负号
#defineIDB_EDIT0x4415//编辑框
ICO_MAINICON"xhk.ico"
DLG_MAINDIALOG300,150,102,140STYLEDS_SETFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION"我的计算器"
FONT9,"宋体"
{
//定义编辑框控件
EDITTEXT IDB_EDIT,7,10,86,17,ES_RIGHT
PUSHBUTTON "7",IDB_7,5,30,23,17
PUSHBUTTON "8", IDB_8, 38,30,23,17
PUSHBUTTON "9",IDB_9,71,30,23,17
PUSHBUTTON "4",IDB_4,5,52,23,17
PUSHBUTTON "5",IDB_5,38,52,23,17
PUSHBUTTON "6",IDB_6,71,52,23,17
PUSHBUTTON "1",IDB_1,5,74,23,17
PUSHBUTTON "2",IDB_2,38,74,23,17
PUSHBUTTON "3",IDB_3,71,74,23,17
PUSHBUTTON "0",IDB_0,5,92,23,17
PUSHBUTTON "+/-",IDB_PAS,38,92,23,17
PUSHBUTTON ".",IDB_DOT,71,92,23,17
PUSHBUTTON "+",IDB_PLUS,5,114,23,17
PUSHBUTTON "-",IDB_SUB,38,114,23,17
PUSHBUTTON "=",IDB_EQU,71,114,23,17
}
下面还是主程序代码:
/***********MyCalculator.c**************/
#include
#include
#define ICO_MAIN0X1000
#defineDLG_MAIN1
#define IDB_00X4400//0
#define IDB_10X4401//1
#define IDB_20X4402//2
#define IDB_30X4403//3
#define IDB_40X4404//4
#define IDB_50X4405//5
#define IDB_60X4406//6
#define IDB_70X4407//7
#define IDB_80X4408//8
#define IDB_90X4409//9
#define IDB_PLUS0X4410//+
#define IDB_SUB0X4411//-
#define IDB_EQU0X4412//=
#define IDB_DOT0X4413//.
#define IDB_PAS0X4414//正负号
#defineIDB_EDIT0x4415//编辑框
int num1=0;//定义了第一个数字
int num2=0;//定义了第二个数字
char s[10];//为了方面参数的传递,定义了这个全局变量,完全没有这个必要
UINT uFlags=1;//标识是否按下了加号或者等号,切换给num1和num2赋值
char oPration='+';//操作符标志,判断按下的是什么操作符,默认为加
//把字符串转化成数字
int StrToNum(char * str)
{
returnatoi(str);
}
//把数字转化成字符串
char * NumToStr(int nNum)
{
itoa(nNum,s,10);
return s;
}
//修改编辑框控件的文字
int SetEditValue(int nNum,HWND hEdit)
{
if(uFlags==1)
{
num1 = num1*10+nNum;//可以使数字进位(向左移)
SetWindowText(hEdit,NumToStr(num1));
}
else
{
num2 = num2*10+nNum;//可以使数字进位(向左移)
SetWindowText(hEdit,NumToStr(num2));
}
return 0;
}
LRESULT WINAPI DialogProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam)
{
HICON hIcon;
HWND hEdit = GetDlgItem(hWnd,IDB_EDIT);
switch(Msg)
{
case WM_INITDIALOG:
//设置图标
hIcon = LoadIcon(GetModuleHandle("MyCalculator.exe"),MAKEINTRESOURCE(ICO_MAIN));
SendMessage(hWnd,WM_SETICON,ICON_BIG,(long)hIcon);
SetWindowText(hEdit,"0.");//让编辑框控件的内容为"0."
return TRUE;
case WM_COMMAND:
switch(LOWORD(wParam))//LOWORD(wParam)用来取出命令ID
{
//一下处理过程可以更简单的,大家自己想想,看怎样处理好
//自己完成计算器可以满足支持小数点和正负号
case IDB_0:
SetEditValue(0,hEdit);
break;
case IDB_1:
SetEditValue(1,hEdit);
break;
case IDB_2:
SetEditValue(2,hEdit);
break;
case IDB_3:
SetEditValue(3,hEdit);
文章评论