WEB开发网
开发学院软件开发VC 用Win32 SDK写一个简单的计算器 阅读

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

 2010-07-11 20:44:36 来源:WEB开发网   
核心提示:用MFC做计算器非常容易,大家都认为用SDK做非常难,用Win32 SDK写一个简单的计算器, 但是我认为只要你的思路正确,做起来也是一样得心应手, 建立按钮和文本框等一些外观的步骤略,如果想要详细的代码请看源程序, 由于SDK做工程也是有规律可寻,就是建立框架然后再对框架进行消息处理

用MFC做计算器非常容易,大家都认为用SDK做非常难, 但是我认为只要你的思路正确,做起来也是一样得心应手。 由于SDK做工程也是有规律可寻,就是建立框架然后再对框架进行消息处理。 所以我学VC++一个多月来编出来了我的第一个小程序,在这里和各位VC爱好者交流交流。

做计算器之前,首先要了解下面二个函数:字符串转换为双精度和双精度转换为字符串。 字符串转换为双精度函数为double strtod( const char *nptr, char **endptr ),其中nptr表示要转换的字符串, endptr表示到不是数字的字符时停止扫描;双精度转换为字符串函数为char *_gcvt( double value, int digits, char *buffer ),其中value表示要转换为字符串的数值,digts表示有意义的位数,buffer表示用来存储字符串的缓冲区。了解了这两函数后对计算器的组织就开始有了一定的了解。

下面介绍说明一下计算器的步骤:

1.写上一个可以说是千篇一律的主函数。

2.消息处理这部分是最难的也是最主要的部分,在这部分中包含建立按钮、文本框和对每个按钮按下去的功能实现。 建立按钮和文本框等一些外观的步骤略,如果想要详细的代码请看源程序。

3.对数字键用一个函数表示:

//------按下数字键(0~9和小数点)的操作处理函数------
void NumResult(char *NumData)
{
  if (nOptF==0)
   SetWindowText(hEditResult,""); //hEditResult表示文本框
  nMax=GetWindowTextLength(hEditResult)+1;
  GetWindowText(hEditResult,lpszAddItem,nMax); //用lpszAddItembr存储字符串
  strcat(lpszAddItem,NumData); ///字符串加该数字键的字符
  //lpszOpt表示是否按下操作符键,
  //如是没有按过就赋值为“N”;
  //如是按了就赋值为该操作符
  if (strcmp(lpszOpt,"N")==0)
  {
   strcpy(lpszResult1,lpszAddItem);
   SetWindowText(hEditResult,lpszResult1);
  }
  else
  {
    strcpy(lpszResult2,lpszAddItem);
    SetWindowText(hEditResult,lpszResult2);
  }
  nOptF=1; //按下了数字键
}

1 2 3  下一页

Tags:Win SDK 一个

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接