C 语言开发初涉-01 简单学习

 

尝试用C语言写windows程序:

   简单的计算器 1.0版,仅用来熟悉C 开发windows的一些语法和语句用法

  1 #include "stdafx.h"
  2 #include <windows.h>
  3 #include <windowsx.h>
  4 #include <stdio.h>
  5 #include <stdlib.h>
  6 #include <typeinfo.h>
  7 #include "resource.h"
  8 #include "MainDlg.h"
  9 
 10 /*
 11      http://www.cnblogs.com/daomul/
 12 */
 13 BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 14 {
 15     switch(uMsg)
 16     {
 17         HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog);
 18         HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);
 19         HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);
 20     }
 21 
 22     return FALSE;
 23 }
 24 
 25 BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
 26 {
 27     return TRUE;
 28 }
 29 /********************  解决输入判断******************************   */
 30 BOOL IsNum(TCHAR* nameOne,TCHAR* nameTwo)
 31 {
 32     TCHAR TempOne[256],TempTwo[256];
 33     int temp1=atoi(nameOne);
 34     int temp2=atoi(nameTwo);//先将输入的字符串转化为整形
 35 
 36     wsprintf(TempOne,"%d",temp1);
 37     wsprintf(TempTwo,"%d",temp2);//再将整形转化为字符型,如果是数字,则整形月字符型是相同的
 38 
 39         
 40     if(strcmp(TempOne,nameOne)!=0)
 41     {
 42                 
 43         //MessageBox(hwnd,TEXT("第一个数字输入不合法!请重新输入!"),TEXT("ok"),MB_OK|MB_ICONERROR);
 44                 return FALSE;
 45     }
 46     if(strcmp(TempTwo,nameTwo)!=0)
 47     {
 48         //MessageBox(hwnd,TEXT("第二个数字输入不合法!请重新输入!"),TEXT(""),MB_OK|MB_ICONERROR);
 49                 return FALSE;
 50 
 51     }
 52     return TRUE;
 53 }
 54 /********************  解决输入判断结束******************************   */
 55 
 56 void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
 57 {
 58     switch(id)
 59     {
 60         case IDC_OK:
 61         {
 62             TCHAR nameOne[256],nameTwo[256];//解决中文编码问题
 63             GetDlgItemText(hwnd,IDC_INPUTONE,nameOne,sizeof(nameOne));
 64             GetDlgItemText(hwnd,IDC_INPUTTWO,nameTwo,sizeof(nameTwo));
 65 
 66             /********************  解决输入判断******************************   */
 67 
 68             if(!IsNum(nameOne,nameTwo))
 69             {
 70                 MessageBox(hwnd,TEXT("数字输入不合法!请重新输入!"),TEXT("error"),MB_OK|MB_ICONERROR);
 71                 return;
 72             }
 73 
 74             /********************  解决输入判断结束******************************   */
 75 
 76             TCHAR str[256];
 77             int result;
 78             result=atoi(nameOne)+atoi(nameTwo);//加头文件#include<stdlib.h>
 79 
 80             itoa(result,str,10);//同样可以用来转化类型(可以转化进制)
 81             
 82             SetDlgItemText(hwnd,IDC_RESULT,str);
 83 
 84 
 85             //wsprintf(msg,"%d",result);//要添加 #include <stdio.h>头文件  相当于拼接
 86 
 87             //MessageBox(hwnd,msg,TEXT("ok"),MB_OK);
 88         }
 89         break;
 90 
 91         case IDC_CHANGE:
 92         {
 93             /********************  转化为二进制******************************   */
 94             TCHAR result[256];
 95             GetDlgItemText(hwnd,IDC_RESULT,result,sizeof(result));
 96             if(NULL==result)
 97             {
 98                 MessageBox(hwnd,TEXT("请先输入数字!"),TEXT(" "),MB_OK);
 99             }
100             else
101             {
102                 TCHAR ChangeResult[256];
103                 itoa(atoi(result),ChangeResult,2);
104                 SetDlgItemText(hwnd,IDC_RESULT,ChangeResult);
105             }
106         }
107         break;
108 
109         default:
110         break;
111     }
112 }
113 
114 void Main_OnClose(HWND hwnd)
115 {
116     EndDialog(hwnd, 0);
117 }

 

posted @ 2013-09-20 22:01  daomul  阅读(318)  评论(0编辑  收藏  举报