compute_v2

本文介绍了一个简单的Windows平台上的计算器程序实现。通过对话框形式,用户可以输入两个整数及选择运算符进行基本算术运算。程序使用了GetDlgItemText获取输入框文本,并通过ComboBox组件选择加减乘除等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{  
    //得到ComboBox的句柄
 HWND hwndCombo1 = GetDlgItem(hwnd,IDC_COMBO_OPERATOR);
    ComboBox_InsertString(hwndCombo1,-1,TEXT("+"));
 ComboBox_InsertString(hwndCombo1,-1,TEXT("-"));
 ComboBox_InsertString(hwndCombo1,-1,TEXT("*"));
    ComboBox_InsertString(hwndCombo1,-1,TEXT("/"));
 return TRUE;
}
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
    switch(id)
    {
        case IDC_OK:
  {
         HWND hwndCombo1 = GetDlgItem(hwnd,IDC_COMBO_OPERATOR);
   /*
   int cursel = ComboBox_GetCurSel(hwndCombo1);
   if (0==cursel)
   {
    MessageBox(hwnd,TEXT("你选择了+号"),TEXT("choose"),MB_OK);
   }
   */
         //ComboBox_DeleteString(hwndCombo1,2);
        /*
   int count = ComboBox_GetCount(hwndCombo1);
   TCHAR List_Count[10];
   wsprintf(List_Count,"%i",count);
   MessageBox(NULL,List_Count,TEXT("总共的项数"),MB_OK);
     */
  //ComboBox_SetCurSel(hwndCombo1,1);
         /*
    TCHAR List_set[10];
    int ComboBox_GetLBText(hwndCombo1,2,List_set);
    MessageBox(hwnd,List_set,TEXT("消息"),MB_OK);
   */
        TCHAR str1[256],str2[256];
  int g1 = GetDlgItemText(hwnd,IDC_DATA1,str1,sizeof(str1));
  int g2 = GetDlgItemText(hwnd,IDC_DATA2,str2,sizeof(str2));
  if (0 == g1 || 0 == g2)
  {
   MessageBox(NULL,TEXT("输入不能为空值!"),TEXT("出错"),MB_ICONERROR|MB_OK);
   return;
  }
  if (!IsInt(str1))
  {
   MessageBox(NULL,TEXT("数值1非法"),TEXT("出错"),MB_ICONERROR|MB_OK);
      return;
  }
  if (!IsInt(str2))
  {
   MessageBox(NULL,TEXT("数值2非法"),TEXT("出错"),MB_ICONERROR|MB_OK);
   return;
  }
  int i1 = atoi(str1);
  int i2 = atoi(str2);
  TCHAR result[256];
  int result_;
  int cur_sel = ComboBox_GetCurSel(hwndCombo1);
  switch(cur_sel)
  {
      case 0:
              result_=i1 + i2;
     break;
            case 1:
              result_=i1 - i2;
     break;
            case 2:
              result_=i1 * i2;
     break;
            case 3:
    if (0 == i2)
    {
     MessageBox(NULL,TEXT("除数不能为零!"),TEXT("出
错"),MB_ICONERROR|MB_OK);
     return;
    }
              result_=i1 / i2;
     break;
            case CB_ERR:
    MessageBox(NULL,TEXT("请选择计算类型!"),TEXT("出
错"),MB_ICONERROR|MB_OK);
    return;
            default:
              break;
  }
    itoa(result_,result,10);
    SetDlgItemText(hwnd,IDC_RESULT,result);
  }
        break;
        default:
  break;
    }
}
阅读(234) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值