- 注册时间
- 2010-1-3
- 最后登录
- 2010-8-13
- 在线时间
- 108 小时
- 鹏币
- 820
- 阅读权限
- 70
- 积分
- 1131
- 帖子
- 101
- 主题
- 27
- 精华
- 0
- UID
- 10970
 
|
发表于 2010-1-15 15:03:20
|显示全部楼层
计算器2.0
BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)//对话框初始化
{
// Set app icons
HICON hIcon = LoadIcon((HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE) ,MAKEINTRESOURCE(IDI_ICONAPP));
SendMessage(hwnd, WM_SETICON, TRUE, (LPARAM)hIcon);
SendMessage(hwnd, WM_SETICON, FALSE, (LPARAM)hIcon);
SendDlgItemMessage(hwnd,IDC_CBO1,CB_ADDSTRING,0,(LPARAM)TEXT("+"));
SendDlgItemMessage(hwnd,IDC_CBO1,CB_ADDSTRING,0,(LPARAM)TEXT("-"));
SendDlgItemMessage(hwnd,IDC_CBO1,CB_ADDSTRING,0,(LPARAM)TEXT("*"));
SendDlgItemMessage(hwnd,IDC_CBO1,CB_ADDSTRING,0,(LPARAM)TEXT("/"));
//
// Add initializing code here
//
return TRUE;
}
////////////////////////////////////////////////////////////////////////////////
// Main_OnCommand
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)//按钮
{
switch(id)
{
case IDC_BTN1://四则运算
{
int index;
index = SendDlgItemMessage(hwnd,IDC_CBO1,CB_GETCURSEL,0,0);//求项目的索引//
if(-1==index)//如果索引值为-1表示没选择操作符,就不用执行四则运算了,直接退出//
{
MessageBox(NULL,TEXT("没选择操作符!"),TEXT("错误"),MB_OK|MB_ICONSTOP);
break;
}
///////////////////////////下面区域执行四则运算/////////////////////////////
char str1[255],str2[255],str3[255];
float n1=0,n2=0,result=0;
bool error=FALSE;//除数不为0
GetDlgItemText(hwnd,IDC_EDT1,str1,254);//获取第一个文本里的串
GetDlgItemText(hwnd,IDC_EDT2,str2,254);//获取第二个文本里的串
n1=atof(str1);//转换数值项1
n2=atof(str2);//转换数值项2
switch(index)//判断项目索引
{
case 0://加
{
result=n1+n2;
break;
}
case 1://减
{
result=n1-n2;
break;
}
case 2://乘
{
result=n1*n2;
break;
}
case 3://除
{
if(0==n2)
{
MessageBox(NULL,TEXT("被除数不能为0!"),TEXT("错误"),MB_OK);
error=TRUE;//除数为0
}
else
{
result=n1/n2;
}
break;
}
default:
{
break;
}
break;
}
if(FALSE==error)
{
gcvt(result,6,str3);
SetDlgItemText(hwnd,IDC_EDT3,str3);
}
break;
}
///////////////////////////////////上面为四则运算区域////////////////////////////////////////
case IDC_BTN2://转换成二进制
{
char str4[255];
GetDlgItemText(hwnd,IDC_EDT4,str4,254);//获取文本里的串
if(0==str4[0])//当用户没输入数字或输入时,退出,不执行下面转换
{
MessageBox(NULL,TEXT("内容不能为空"),TEXT("错误"),MB_OK);
break;
}
int i=0,sign=0,n3=atoi(str4);//转换串为数值
itoa(n3,str4,2);
SetDlgItemText(hwnd,IDC_EDT5,str4);
break;
}
}
} |
|