• 简单控件的应用(一)—prj计算器


     

     

     

    源程序下载地址:http://down.qiannao.com/space/file/luowei505050/prj-8ba1-7b97-5668.rar/.page

    新建一个对话框程序,插入编辑框,下拉框,按钮,对输入数据进行响应,对数据进行增删除查改,对数据作加减乘除运算,截图:

    主程序如下:

    #include "stdafx.h"

    #include <windows.h>

    #include <stdio.h>

    #include <stdlib.h>

    //#include <math.h>

    #include <windowsx.h>

    #include "resource.h"

    #include "MainDlg.h"

    #define PI 3.1415926

     

    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 hwndcombo1=GetDlgItem(hwnd,IDC_COMBO1);

        //ComboBox_AddString(hwndcombo1,TEXT("学校"));

        //ComboBox_AddString(hwndcombo1,TEXT("商店"));

        //ComboBox_AddString(hwndcombo1,TEXT("家里"));

        //ComboBox_AddString(hwndcombo1,TEXT("路上"));

        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(char *str)

    {

        TCHAR strtemp[32];

        int i1=atoi(str);

        itoa(i1,strtemp,10);

        if(strcmp(strtemp,str)==0)

        {

            return TRUE;

        }

        else

            return FALSE;

    }

     

    TCHAR *GetText(HWND hwnd,int id,TCHAR* str)

    {

        //TCHAR str[256];

        GetDlgItemText(hwnd,id,str,sizeof(str)+29);

        return str;

    }

    //==========================================================================

    void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)

    {

    switch(id)

    {

    case IDC_OK:

            {

                //char name[256];

                TCHAR name[256];

                GetDlgItemText(hwnd,IDC_EDITNAME,name,sizeof(name));

                MessageBox(hwnd,name,name,MB_OK);

            }

    break;

     

            case IDC_OK2:

            {

                char name[256];

                TCHAR msg[256];

                GetDlgItemText(hwnd,IDC_EDITNAME,name,sizeof(name));

                //sprintf(msg,"%s你好!",name);

                wsprintf(msg,"%s你好!",name);

                MessageBox(hwnd,msg,msg,MB_OK);

            }

            break;

    case IDC_SET:

                {

                    SetDlgItemText(hwnd,IDC_EDITNAME2,"新年好!!");

                }

    break;

    //=============================================================================

    case IDC_ADD:

            {

                TCHAR str1[32];

                TCHAR str2[32];

                TCHAR str11[32];

                TCHAR str22[32];

                TCHAR str3[32];

                GetDlgItemText(hwnd,IDC_EDIT1,str1,sizeof(str1));

                GetDlgItemText(hwnd,IDC_EDIT2,str2,sizeof(str2));

                int i1=atoi(str1);

                int i2=atoi(str2);

                itoa(i1,str11,10);

                itoa(i2,str22,10);

                if(strcmp(str1,str11)!=0||strcmp(str2,str22)!=0)

                {

                    MessageBox(hwnd,TEXT("请输入整数!"),TEXT("提示"),MB_OK|MB_ICONHAND);

                    break;

                }

                int i3=i1+i2;

                itoa(i3,str3,10);

                //wsprintf(str3,"%i",i3);

                SetDlgItemText(hwnd,IDC_EDIT3,str3);

            }

            break;

    case IDC_SUB:

            {

                TCHAR str1[32];

                TCHAR str2[32];

                TCHAR str3[32];

                GetDlgItemText(hwnd,IDC_EDIT4,str1,sizeof(str1));

                GetDlgItemText(hwnd,IDC_EDIT5,str2,sizeof(str2));

                int i1=atoi(str1);

                int i2=atoi(str2);

                if(!IsInt(str1))

                {

                    MessageBox(hwnd,TEXT("第一个输入框中的数不是整数!"),TEXT("提示"),MB_OK|MB_ICONHAND);

                    break;

                }

                if(!IsInt(str2))

                {

                    MessageBox(hwnd,TEXT("第二个输入框中的数不是整数!"),TEXT("提示"),MB_OK|MB_ICONHAND);

                    break;

                }

                int i3=i1-i2;

                itoa(i3,str3,10);

                //wsprintf(str3,"%i",i3);

                SetDlgItemText(hwnd,IDC_EDIT6,str3);

            }

            break;

     

            case IDC_NEW:

            {

                //if() //有重复的

     

                HWND hwndcombo1=GetDlgItem(hwnd,IDC_COMBO1);

                ComboBox_AddString(hwndcombo1,TEXT("学校"));

                ComboBox_AddString(hwndcombo1,TEXT("商店"));

                ComboBox_AddString(hwndcombo1,TEXT("家里"));

                ComboBox_AddString(hwndcombo1,TEXT("路上"));

            }

            break;

     

            //void Main_OnCommand2(HWND hwndcombo1, int id, HWND hwndCtl, UINT codeNotify)

            //{

            case IDC_COMBOBACK:

            {

                HWND hwndcombo1=GetDlgItem(hwnd,IDC_COMBO1);

                int cursel=ComboBox_GetCurSel(hwndcombo1);

                switch(cursel)

                {

                    case 3:

                    {

                        MessageBox(hwnd,TEXT("你选择的是 学校"),TEXT("回复"),MB_OK);

                    }break;

                    case 2:

                    {

                        MessageBox(hwnd,TEXT("你选择的是 商店"),TEXT("回复"),MB_OK);

                    }break;

                    case 0:

                    {

                        MessageBox(hwnd,TEXT("你选择的是 家里"),TEXT("回复"),MB_OK);

                    }break;

                    case 1:

                    {

                        MessageBox(hwnd,TEXT("你选择的是 路上"),TEXT("回复"),MB_OK);

                    }break;

     

                }

            }

            //}

            break;

     

            case IDC_COMBODELETE:

            {

                HWND hwndcombo1=GetDlgItem(hwnd,IDC_COMBO1);

                ComboBox_DeleteString(hwndcombo1,3);

                ComboBox_DeleteString(hwndcombo1,2);

                ComboBox_DeleteString(hwndcombo1,1);

                ComboBox_DeleteString(hwndcombo1,0);

            }

            break;

     

            case IDC_COMBOCOUNT:

            {

                HWND hwndcombo1=GetDlgItem(hwnd,IDC_COMBO1);

                int count=ComboBox_GetCount(hwndcombo1);

                TCHAR msg[256];

                wsprintf(msg,"这个下拉列表中一共有 %d 个下拉选项",count);

                MessageBox(hwnd,msg,TEXT("统计下拉项数"),MB_OK);

            }break;

     

            case IDC_COMBOSETCURSEL:

            {

                HWND hwndcombo1=GetDlgItem(hwnd,IDC_COMBO1);

                ComboBox_SetCurSel(hwndcombo1,2);

                int se=ComboBox_GetCount(hwndcombo1);

                if(!se)

                {

                    MessageBox(hwnd,TEXT("列表中没有选项,无法进行选择!"),TEXT("提示"),MB_OK);

                }

                else

                MessageBox(hwnd,TEXT("你选择了商店"),TEXT("选择"),MB_OK);

            }break;

     

            case IDC_GETLBTEXT:

            {

                HWND hwndcombo1=GetDlgItem(hwnd,IDC_COMBO1);

                TCHAR str[32];

                ComboBox_GetLBText(hwndcombo1,1,str);

                int se=ComboBox_GetCount(hwndcombo1);

                if(!se)

                {

                    MessageBox(hwnd,TEXT("列表中没有选项,无法进行选择!"),TEXT("提示"),MB_OK);

                }

                else

                    MessageBox(hwnd,TEXT(str),TEXT("操作结果"),MB_OK);

            }break;

            case IDC_COMBOADDITEM:

            {

                HWND hwndcombo1=GetDlgItem(hwnd,IDC_COMBO1);

                TCHAR str1[32];

                TCHAR *str2;

                str2=GetText(hwnd,IDC_COMBOTEXT,str1);

                ComboBox_AddString(hwndcombo1,str2);

            }break;

    //=========================================================

            case IDC_OP:

            {

                TCHAR str1[32];

                TCHAR str2[32];

                TCHAR str3[32];

                GetDlgItemText(hwnd,IDC_INPUT1,str1,sizeof(str1));

                GetDlgItemText(hwnd,IDC_INPUT2,str2,sizeof(str2));

                if(!IsInt(str1))

                {MessageBox(hwnd,TEXT("第一个输入框中输入的不是整数,不符合要求"),TEXT("提示"),MB_OK);break;}

                if(!IsInt(str2))

                {MessageBox(hwnd,TEXT("第二个输入框中输入的不是整数,不符合要求"),TEXT("提示"),MB_OK);break;}

                

                int i1=atoi(str1);

                int i2=atoi(str2);

                int i3=0;

                HWND hwndcomboop=GetDlgItem(hwnd,IDC_COMBOOP);

                int curselIndex=ComboBox_GetCurSel(hwndcomboop);

                switch(curselIndex)

                {

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

                    }break;

                }

                itoa(i3,str3,10);

                SetDlgItemText(hwnd,IDC_OUTPUT,str3);

     

            }break;

    //==============================================================================

            case IDC_CIRCLE:

            {

                TCHAR str1[32];

                TCHAR str2[32];

                GetDlgItemText(hwnd,IDC_R,str1,sizeof(str1));

                float i1=atof(str1);

                long float i2=PI*i1*i1;

                ltoa(i2,str2,10);

                //wsprintf(str2,"%lf",i2);

                SetDlgItemText(hwnd,IDC_A,str2);

            }

            break;

            case IDC_CONVERT:

            {

                TCHAR str1[32];

                TCHAR str2[32];

                GetDlgItemText(hwnd,IDC_10,str1,sizeof(str1));

                int i1=atoi(str1);

                itoa(i1,str2,2);

                //wsprintf(str2,"%lf",i2);

                SetDlgItemText(hwnd,IDC_2,str2);

            }

            break;

    default:

            break;

    }

    }

     

    void Main_OnClose(HWND hwnd)

    {

    EndDialog(hwnd, 0);

    }

  • 相关阅读:
    (数据科学学习手札09)系统聚类算法Python与R的比较
    写完代码就去吃饺子|The 10th Henan Polytechnic University Programming Contest
    《四月物语》
    PAT(甲级)2017年春季考试
    PAT(甲级)2017年秋季考试
    2019年全国高校计算机能力挑战赛 C语言程序设计决赛
    CF#603 Div2
    redhat7 上安装dummynet
    cassandra 如何写数据以及放置副本
    Eclipse中设置VM参数
  • 原文地址:https://www.cnblogs.com/luowei010101/p/2170157.html
Copyright © 2020-2023  润新知