main.cpp代码:
#include <windows.h>
#include <stdlib.h>
#include <windowsx.h>
#include "main.h"
#include "dialogs.h"
#include "resource.h"
#include "rsrc.inc"
#define p 3.1416
#define AREA(x) x*x*p
#define MASK 1
BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
//BEGIN MESSAGE CRACK
HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog);
HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);
HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);
//END MESSAGE CRACK
}
return FALSE;
}
////////////////////////////////////////////////////////////////////////////////
// Main_OnInitDialog
BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
// Set app icons
HICON hIcon = LoadIcon((HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE) ,MAKEINTRESOURCE(IDI_ICONAPP));
SendMessage(hwnd, WM_SETICON, TRUE, (LPARAM)hIcon);
SendMessage(hwnd, WM_SETICON, FALSE, (LPARAM)hIcon);
//
// Add initializing code here
//
return TRUE;
}
////////////////////////////////////////////////////////////////////////////////
// Main_OnCommand
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
switch(id)
{
case IDC_BTNEQUAL:
TCHAR cNO1[256];
GetDlgItemText(hwnd,IDC_EDTNO1,cNO1,sizeof(cNO1)/sizeof(TCHAR));
//ware can not input char
int i;
for(i=0;i<lstrlen(cNO1)&&cNO1>='0'&&cNO1<='9';++i);
if(i<lstrlen(cNO1))
{
MessageBox(NULL,TEXT(strcat(cNO1,"中不能含有字符")),TEXT("警告!"),MB_OKCANCEL);
break;
}
int intNO1=atoi(cNO1);
TCHAR cNO2[256];
GetDlgItemText(hwnd,IDC_EDTNO2,cNO2,sizeof(cNO2)/sizeof(TCHAR));
//ware can not input char
int j;
for(j=0;j<lstrlen(cNO2)&& cNO2[j]>='0' && cNO2[j]<='9';++j);
if(j<lstrlen(cNO2))
{
MessageBox(NULL,TEXT(strcat(cNO2,"中不能含有字符")),TEXT("警告!"),MB_OKCANCEL);
break;
}
int intNO2=atoi(cNO2);
TCHAR cRESULT[256];
itoa(intNO1+intNO2,cRESULT,10);
SetDlgItemText(hwnd,IDC_EDTRESUL,cRESULT);
break;
case IDC_AREA:
TCHAR cRadii[256];
GetDlgItemText(hwnd,IDC_RADIIVALUE,cRadii,sizeof(cRadii)/sizeof(TCHAR));
int k; //simple variable to check out char exist in 'cAREA'
for(k=0;k<lstrlen(cRadii)&&cRadii[k]>='0'&&cRadii[k]<='9' ||cRadii[k]=='.';++k);
if(k<lstrlen(cRadii))
{
MessageBox(NULL,TEXT(strcat(cRadii,"中不能含有字符")),TEXT("警告!"),MB_OKCANCEL);
break;
}
double dRADII=atof(cRadii),dRESULE;
TCHAR cAREA[256];
gcvt(AREA(dRADII),10,cAREA); //double value convert to char *
SetDlgItemText(hwnd,IDC_AREAVALUE,cAREA);
break;
case IDC_DISKLIST:
DWORD ds=GetLogicalDrives();
TCHAR cDS[sizeof(DWORD)+1];
TCHAR cFLAG;
int m,sum;
for(m=0,sum=0,cFLAG='A';ds;++cFLAG,ds>>=1)
{
if(ds & MASK)
{
cDS[m]=cFLAG;
++sum;
++m;
}
}
cDS[m]='\0';
TCHAR DRINSUM[2];
itoa(sum,DRINSUM,10);
SetDlgItemText(hwnd,IDC_EDTSUM,DRINSUM);
SetDlgItemText(hwnd,IDC_EDTLIST,cDS);
break;
case IDC_BTND:
DWORD DS2=GetLogicalDrives();
if(DS2 & 8)
{
SetDlgItemText(hwnd,IDC_EDTD,"EXIST!");
}
else
{
SetDlgItemText(hwnd,IDC_EDTD,"not EXIST!");
}
break;
case IDC_BTNEXIT:
exit(0);
break;
default:break;
}
}
////////////////////////////////////////////////////////////////////////////////
// Main_OnClose
void Main_OnClose(HWND hwnd)
{
EndDialog(hwnd, 0);
}
dialogs.dlg代码:
#define IDD_MAIN 100
#define IDC_EDTNO1 1003
#define IDC_EDTNO2 1002
#define IDC_BTNEQUAL 1004
#define IDC_EDTRESUL 1005
#define IDC_EDTADD 1001
#define IDC_STC1 1006
#define IDC_RADIIVALUE 1008
#define IDC_AREA 1009
#define IDC_AREAVALUE 1010
#define IDC_RADII 1007
#define IDC_STC2 1011
#define IDC_STC3 1012
#define IDC_STC4 1013
#define IDC_DISKLIST 1014
#define IDC_EDTLIST 1015
#define IDC_BTND 1016
#define IDC_EDTD 1017
#define IDC_EDTSUM 1018
#define IDC_BTNEXIT 1019
#define IDC_IMG1 1020
#define IDC_STC5 1021
#define IDC_STC6 1022
#include "dialogs.h"
#include <windows.h>
IDD_MAIN DIALOGEX 122,75,300,194
LANGUAGE 4,2
CAPTION "计算器(V1.0)"
FONT 8,"Tahoma",0,0,0
STYLE WS_VISIBLE|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MAXIMIZEBOX|0xC0000000
BEGIN
CONTROL "",IDC_EDTNO1,"Edit",WS_CHILD|WS_VISIBLE|WS_TABSTOP,7,12,36,11,WS_EX_CLIENTEDGE
CONTROL "",IDC_EDTNO2,"Edit",WS_CHILD|WS_VISIBLE|WS_TABSTOP,62,12,38,11,WS_EX_CLIENTEDGE
CONTROL "=",IDC_BTNEQUAL,"Button",WS_CHILD|WS_VISIBLE|WS_TABSTOP,110,14,21,9
CONTROL "",IDC_EDTRESUL,"Edit",WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_READONLY,143,12,42,11,WS_EX_CLIENTEDGE
CONTROL "+",IDC_EDTADD,"Static",WS_CHILD|WS_VISIBLE,51,14,6,9
CONTROL "计算圆的面积:",IDC_STC1,"Static",WS_CHILD|WS_VISIBLE,0,31,124,9
CONTROL "",IDC_RADIIVALUE,"Edit",WS_CHILD|WS_VISIBLE|WS_TABSTOP,32,44,34,11,WS_EX_CLIENTEDGE
CONTROL "求出面积→",IDC_AREA,"Button",WS_CHILD|WS_VISIBLE|WS_TABSTOP,74,44,48,13
CONTROL "",IDC_AREAVALUE,"Edit",WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_READONLY,127,44,59,13,WS_EX_CLIENTEDGE
CONTROL "半径:",IDC_RADII,"Static",WS_CHILD|WS_VISIBLE,1,46,25,11
CONTROL "―――――――――――――――――――――――――――――――",IDC_STC2,"Static",WS_CHILD|WS_VISIBLE,-1,66,195,8
CONTROL "加法运算:",IDC_STC3,"Static",WS_CHILD|WS_VISIBLE,1,1,67,9
CONTROL "磁盘信息检测:",IDC_STC4,"Static",WS_CHILD|WS_VISIBLE,1,86,168,11
CONTROL "所有磁盘信息:",IDC_DISKLIST,"Button",WS_CHILD|WS_VISIBLE|WS_TABSTOP,3,107,71,28
CONTROL "",IDC_EDTLIST,"Edit",WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_READONLY,122,101,59,17,WS_EX_CLIENTEDGE
CONTROL "是否存在D盘:",IDC_BTND,"Button",WS_CHILD|WS_VISIBLE|WS_TABSTOP,3,147,71,17
CONTROL "",IDC_EDTD,"Edit",WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_READONLY,78,147,101,17,WS_EX_CLIENTEDGE
CONTROL "",IDC_EDTSUM,"Edit",WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_READONLY,122,123,57,17,WS_EX_CLIENTEDGE
CONTROL "退出系统",IDC_BTNEXIT,"Button",WS_CHILD|WS_VISIBLE|WS_TABSTOP,7,173,40,17
CONTROL "IDB_IMG1",IDC_IMG1,"Static",WS_CHILD|WS_VISIBLE|SS_CENTERIMAGE|SS_BITMAP,190,-3,111,319
CONTROL "所有盘符:",IDC_STC5,"Static",WS_CHILD|WS_VISIBLE,80,105,42,13
CONTROL "驱动总数:",IDC_STC6,"Static",WS_CHILD|WS_VISIBLE,80,127,36,11
END
IDB_IMG1 BITMAP DISCARDABLE "D:/My Documents/My Pictures/lk.bmp" |