使用SDK写一个简单的计算器
1.“添加”——“资源”——“对话框”,添加一个对话框,也可以选择其他类型窗口
2.在对话框中添加相应键,加、减、乘、除、等于、清除等。
3.创建主函数,主函数中新建一个非模态对话框。
4.写一个对话框的消息回调函数
5.在WM_COMMAND中响应不同按键(具体在代码中实现)
case WM_COMMAND:
{
WORD id = LOWORD(wParam);
static TCHAR buff2[20] = {};
static std::vector<LPCSTR> num;
switch (id)
{
case IDC_BUTTON1:
{
wcscat_s(buff2,20,_T("0") );
SetWindowText(hEdit, buff2);
}break;
case IDC_BUTTON2:
{
wcscat_s(buff2, 20, _T("1"));
SetWindowText(hEdit, buff2);
}break;
case IDC_BUTTON3:
{
wcscat_s(buff2, 20, _T("2"));
SetWindowText(hEdit, buff2);
}break;
case IDC_BUTTON4:
{
wcscat_s(buff2, 20, _T("3"));
SetWindowText(hEdit, buff2);
}break;
case IDC_BUTTON5:
{
wcscat_s(buff2, 20, _T("4"));
SetWindowText(hEdit, buff2);
}break;
case IDC_BUTTON6:
{
wcscat_s(buff2, 20, _T("5"));
SetWindowText(hEdit, buff2);
}break;
case IDC_BUTTON7:
{
wcscat_s(buff2, 20, _T("6"));
SetWindowText(hEdit, buff2);
}break;
case IDC_BUTTON8:
{
wcscat_s(buff2, 20, _T("7"));
SetWindowText(hEdit, buff2);
}break;
case IDC_BUTTON9:
{
wcscat_s(buff2, 20, _T("8"));
SetWindowText(hEdit, buff2);
}break;
case IDC_BUTTON10:
{
wcscat_s(buff2, 20, _T("9"));
SetWindowText(hEdit, buff2);
}break;
case IDC_BUTTON11:
{
Num1 = Char2Num(buff2);
wcscpy_s(buff2, 20, _T(""));
SetWindowText(hEdit, buff2);
sig = 加;
}break;
case IDC_BUTTON12:
{
Num1 = Char2Num(buff2);
wcscpy_s(buff2, 20, _T(""));
SetWindowText(hEdit, buff2);
sig = 减;
}break;
case IDC_BUTTON13:
{
Num1 = Char2Num(buff2);
wcscpy_s(buff2, 20, _T(""));
SetWindowText(hEdit, buff2);
sig = 乘;
}break;
case IDC_BUTTON14:
{
Num1 = Char2Num(buff2);
wcscpy_s(buff2, 20, _T(""));
SetWindowText(hEdit, buff2);
sig = 除;
}break;
case IDC_BUTTON15:
{
Num2 = Char2Num(buff2);
double Re = Per(Num1, Num2, sig);
Num1 = Re;
_ltot_s(Re, buff2, 20, 10);
SetWindowText(hEdit, buff2);
}break;
case IDC_BUTTON16:
{
//wcscpy_s(buff2, 20, _T(""));
SetWindowText(hEdit,NULL);
Num1 = 0;
Num2 = 0;
wcscpy_s(buff2, 20, _T(""));
}break;
case IDOK:
{
MessageBox(0, buff2, 0, 0);
}
default:break;
}
}break;
另:实现一个字符串转双精度数字函数,实现一个实现计算的函数
//计算
double Per(double A, double B, sign per)
{
switch (per)
{
case 加:
return A + B;
break;
case 减:
return A - B;
break;
case 乘:
return A * B;
break;
case 除:
return A / B;
break;
default:
break;
}
}