尝试用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 }