使用SDK写一个简单的计算器

使用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;
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值