| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 587 人关注过本帖
标题:最近看了个视频,做了个小计算器,只能做整数运算,想做兼容小数的运算现在 ...
只看楼主 加入收藏
落叶深蓝色
Rank: 8Rank: 8
来 自:山东
等 级:蝙蝠侠
帖 子:319
专家分:807
注 册:2010-12-8
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
最近看了个视频,做了个小计算器,只能做整数运算,想做兼容小数的运算现在自己改了下,还是不行,大家帮我改改!
#include "stdafx.h"
#include <windows.h>
#include <windowsx.h>
#include "resource.h"
#include "MainDlg.h"


BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch(uMsg)
    {
        HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog);
        HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);
        HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);
    }

    return FALSE;
}

BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
    HWND hwndComboOp=GetDlgItem(hwnd,IDC_COMBOOP);
    ComboBox_InsertString(hwndComboOp,-1,TEXT("+"));
    ComboBox_InsertString(hwndComboOp,-1,TEXT("-"));
    ComboBox_InsertString(hwndComboOp,-1,TEXT("*"));
    ComboBox_InsertString(hwndComboOp,-1,TEXT("/"));

    return TRUE;
}
BOOL IsInt(TCHAR* str)
{
    double i=atoi(str);
    TCHAR strtemp[256];
    wsprintf(strtemp,"%f",i);
    if(strcmp(str,strtemp)!=0)
    {
   
        return  FALSE;
    }
    else
    {
        return TRUE;
    }
}

void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
    switch(id)
    {
        case IDC_OK:
        {
            TCHAR str1[256];
            TCHAR str2[256];
            TCHAR str3[256];
            GetDlgItemText(hwnd,IDC_EDIT1,str1,sizeof(str1));
            GetDlgItemText(hwnd,IDC_EDIT2,str2,sizeof(str2));
            if(IsInt(str1)==FALSE&&IsInt(str2)==FALSE)
            {
                MessageBox(hwnd,TEXT("第一、二个数都不是合法整数"),TEXT("错误"),MB_OK|MB_ICONERROR);
                return;
            }
            if(IsInt(str1)==FALSE)
            {
                MessageBox(hwnd,TEXT("第一个数不是合法的整数"),TEXT("错误"),
                MB_OK|MB_ICONERROR);
                return;

            }
                if(IsInt(str2)==FALSE)
            {
                MessageBox(hwnd,TEXT("第二个数不是合法的整数"),TEXT("错误"),
                MB_OK|MB_ICONERROR);
                return;

            }
            double  i1=atoi(str1);
            double i2=atoi(str2);
            double i3=0;
            HWND hwndComboOp=GetDlgItem(hwnd,IDC_COMBOOP);
            int curIndex = ComboBox_GetCurSel(hwndComboOp);
            switch(curIndex)
            {
            case 0:
                {
                    i3=i1+i2;

                }
                break;
            case 1:
                {
                    i3=i1-i2;
                }
                break;
            case 2:
                {
                    i3=i1*i2;
                }
                break;
            case 3:
                {
                    i3=i1/i2;

                }
                break;
            default: MessageBox(hwnd,TEXT("未选择运算"),TEXT("错误"),MB_OK|MB_ICONERROR);
                 break;
            }
            itoa(i3,str3,10);
            SetDlgItemText(hwnd,IDC_EDIT3,str3);

        }
        break;
        case IDC_GUILING:
            {
                SetDlgItemText(hwnd,IDC_EDIT1,0);
                SetDlgItemText(hwnd,IDC_EDIT2,0);
                SetDlgItemText(hwnd,IDC_EDIT3,0);
            }
        default:
        break;
    }
   
}

void Main_OnClose(HWND hwnd)
{
    EndDialog(hwnd, 0);
}
搜索更多相关主题的帖子: 计算器 return 
2011-05-10 19:47
落叶深蓝色
Rank: 8Rank: 8
来 自:山东
等 级:蝙蝠侠
帖 子:319
专家分:807
注 册:2010-12-8
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
2011-05-10 19:49
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:10 
C++编程WINFORM之难,比VB和C#难懂得多啊!

   唯实惟新 至诚致志
2011-05-10 20:06
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
计算器?

                                         
===========深入<----------------->浅出============
2011-05-10 20:41
马甲1号
Rank: 5Rank: 5
等 级:职业侠客
帖 子:68
专家分:312
注 册:2011-4-4
收藏
得分:10 
我曾经几次尝试实现消息映射机制, 都不太理想, 还是用那些宏好吧...

???????
2011-05-11 16:57
快速回复:最近看了个视频,做了个小计算器,只能做整数运算,想做兼容小数的运算 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029506 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved