首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

用C语言做个简单的计算机,上面是代码,请教上资源文件在哪里编写,要新建什么文件

2012-07-29 
用C语言做个简单的计算机,下面是代码,请问下资源文件在哪里编写,要新建什么文件还是先做界面,先写资源文件

用C语言做个简单的计算机,下面是代码,请问下资源文件在哪里编写,要新建什么文件
还是先做界面,先写资源文件。
/***********MyCalculator.rc**************/

#include <resource.h>

#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 <windows.h>
#include <stdio.h>

#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);


break;
case IDB_4:
SetEditValue(4,hEdit);
break;
case IDB_5:
SetEditValue(5,hEdit);
break;
case IDB_6:
SetEditValue(6,hEdit);
break;
case IDB_7:
SetEditValue(7,hEdit);
break;
case IDB_8:
SetEditValue(8,hEdit);
break;
case IDB_9:
SetEditValue(9,hEdit);
break;
case IDB_PLUS:
oPration = '+';
uFlags=0;
break;
case IDB_SUB:
oPration = '-';
uFlags=0;
break;
case IDB_DOT:
MessageBox(hWnd,"自己写代码让计算器支持小数点","提示",MB_OK);
break;
case IDB_PAS:
MessageBox(hWnd,"自己写代码让计算器支持负数","提示",MB_OK);
break;
case IDB_EQU:
//按等号,显示结果,并把num1和num2清零,准备下一次运算
if(oPration=='+')
SetWindowText(hEdit,NumToStr(num1+num2));
else
SetWindowText(hEdit,NumToStr(num1-num2));
uFlags=1;
num1=0;
num2=0;
break;
}

break;
case WM_CLOSE://关闭消息
EndDialog(hWnd,0);//终止模态对话框
return TRUE;
}
return FALSE;
}

int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nShowCmd)
{
//很简单的创建了窗口
DialogBoxParam(hInstance,MAKEINTRESOURCE(DLG_MAIN),NULL,DialogProc,0);
return 1;
}


[解决办法]
我觉得这个简单的话用MFC做会比你用Win32做要稍微快点。
[解决办法]
没做过这个代码,不过看到这么多的switch语句,让我想起了c和指针里关于函数指针那部分的应用。楼主可以看看。

热点排行