Windows 加法计算器文档格式.docx

上传人:b****6 文档编号:19924305 上传时间:2023-01-12 格式:DOCX 页数:13 大小:102.03KB
下载 相关 举报
Windows 加法计算器文档格式.docx_第1页
第1页 / 共13页
Windows 加法计算器文档格式.docx_第2页
第2页 / 共13页
Windows 加法计算器文档格式.docx_第3页
第3页 / 共13页
Windows 加法计算器文档格式.docx_第4页
第4页 / 共13页
Windows 加法计算器文档格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

Windows 加法计算器文档格式.docx

《Windows 加法计算器文档格式.docx》由会员分享,可在线阅读,更多相关《Windows 加法计算器文档格式.docx(13页珍藏版)》请在冰豆网上搜索。

Windows 加法计算器文档格式.docx

#defineIDI_SMALL108

#defineIDC_MY109

#defineIDC_MYICON2

#ifndefIDC_STATIC

#defineIDC_STATIC-1

#endif

//新对象的下一组默认值

#ifdefAPSTUDIO_INVOKED

#ifndefAPSTUDIO_READONLY_SYMBOLS

#define_APS_NO_MFC130

#define_APS_NEXT_RESOURCE_VALUE129

#define_APS_NEXT_COMMAND_VALUE32771

#define_APS_NEXT_CONTROL_VALUE1000

#define_APS_NEXT_SYMED_VALUE110

#defineIDI_CALWINAPI107

#defineIDC_CALWINAPI109

加法计算器.cpp

//加法计算器.cpp:

定义应用程序的入口点。

stdafx.h"

#include<

stdio.h>

Resource.h"

#defineMAX_LOADSTRING100

//全局变量:

HINSTANCEhInst;

//当前实例

TCHARszTitle[MAX_LOADSTRING];

//标题栏文本

TCHARszWindowClass[MAX_LOADSTRING];

//主窗口类名

//此代码模块中包含的函数的前向声明:

ATOMMyRegisterClass(HINSTANCEhInstance);

BOOLInitInstance(HINSTANCE,int);

LRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);

INT_PTRCALLBACKAbout(HWND,UINT,WPARAM,LPARAM);

intAPIENTRY_tWinMain(HINSTANCEhInstance,

HINSTANCEhPrevInstance,

LPTSTRlpCmdLine,

intnCmdShow)

{

UNREFERENCED_PARAMETER(hPrevInstance);

UNREFERENCED_PARAMETER(lpCmdLine);

//TODO:

在此放置代码。

MSGmsg;

HACCELhAccelTable;

//初始化全局字符串

LoadString(hInstance,IDS_APP_TITLE,szTitle,MAX_LOADSTRING);

LoadString(hInstance,IDC_MY,szWindowClass,MAX_LOADSTRING);

MyRegisterClass(hInstance);

//执行应用程序初始化:

if(!

InitInstance(hInstance,nCmdShow))

{

returnFALSE;

}

hAccelTable=LoadAccelerators(hInstance,MAKEINTRESOURCE(IDC_MY));

//主消息循环:

while(GetMessage(&

msg,NULL,0,0))

if(!

TranslateAccelerator(msg.hwnd,hAccelTable,&

msg))

{

TranslateMessage(&

msg);

DispatchMessage(&

}

return(int)msg.wParam;

}

ATOMMyRegisterClass(HINSTANCEhInstance)

WNDCLASSEXwcex;

wcex.cbSize=sizeof(WNDCLASSEX);

wcex.style=CS_HREDRAW|CS_VREDRAW;

wcex.lpfnWndProc=WndProc;

wcex.cbClsExtra=0;

wcex.cbWndExtra=0;

wcex.hInstance=hInstance;

wcex.hIcon=LoadIcon(hInstance,MAKEINTRESOURCE(IDI_MY));

wcex.hCursor=LoadCursor(NULL,IDC_ARROW);

wcex.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);

wcex.lpszMenuName=MAKEINTRESOURCE(IDC_MY);

wcex.lpszClassName=szWindowClass;

wcex.hIconSm=LoadIcon(wcex.hInstance,MAKEINTRESOURCE(IDI_SMALL));

returnRegisterClassEx(&

wcex);

BOOLInitInstance(HINSTANCEhInstance,intnCmdShow)

HWNDhWnd;

hInst=hInstance;

//将实例句柄存储在全局变量中

hWnd=CreateWindow(szWindowClass,szTitle,WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);

hWnd)

returnFALSE;

ShowWindow(hWnd,nCmdShow);

UpdateWindow(hWnd);

returnTRUE;

LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam)

intwmId,wmEvent;

PAINTSTRUCTps;

HDChdc;

staticHWNDhEdit1,hEdit2,hResult1,hButton1,hStatic1,hStatic2;

staticHWNDhEdit3,hEdit4,hResult2,hButton2,hStatic3,hStatic4;

staticHWNDhEdit5,hEdit6,hResult3,hButton3,hStatic5,hStatic6;

staticHWNDhEdit7,hEdit8,hResult4,hButton4,hStatic7,hStatic8;

switch(message)

caseWM_CREATE:

hEdit1=:

:

CreateWindowA("

EDIT"

NULL,WS_CHILD|WS_VISIBLE|WS_BORDER,30,30,100,20,hWnd,(HMENU)IDC_EDIT1,hInst,NULL);

hEdit2=:

NULL,WS_CHILD|WS_VISIBLE|WS_BORDER,230,30,100,20,hWnd,(HMENU)IDC_EDIT2,hInst,NULL);

hEdit3=:

NULL,WS_CHILD|WS_VISIBLE|WS_BORDER,30,130,100,20,hWnd,(HMENU)IDC_EDIT3,hInst,NULL);

hEdit4=:

NULL,WS_CHILD|WS_VISIBLE|WS_BORDER,230,130,100,20,hWnd,(HMENU)IDC_EDIT1,hInst,NULL);

hEdit5=:

NULL,WS_CHILD|WS_VISIBLE|WS_BORDER,30,230,100,20,hWnd,(HMENU)IDC_EDIT3,hInst,NULL);

hEdit6=:

NULL,WS_CHILD|WS_VISIBLE|WS_BORDER,230,230,100,20,hWnd,(HMENU)IDC_EDIT1,hInst,NULL);

hEdit7=:

NULL,WS_CHILD|WS_VISIBLE|WS_BORDER,30,330,100,20,hWnd,(HMENU)IDC_EDIT3,hInst,NULL);

hEdit8=:

NULL,WS_CHILD|WS_VISIBLE|WS_BORDER,230,330,100,20,hWnd,(HMENU)IDC_EDIT1,hInst,NULL);

hResult1=:

NULL,WS_CHILD|WS_VISIBLE|WS_BORDER,430,30,150,20,hWnd,(HMENU)IDC_EDIT2,hInst,NULL);

hResult2=:

NULL,WS_CHILD|WS_VISIBLE|WS_BORDER,430,130,150,20,hWnd,(HMENU)IDC_EDIT3,hInst,NULL);

hResult3=:

NULL,WS_CHILD|WS_VISIBLE|WS_BORDER,430,230,150,20,hWnd,(HMENU)IDC_EDIT3,hInst,NULL);

hResult4=:

NULL,WS_CHILD|WS_VISIBLE|WS_BORDER,430,330,150,20,hWnd,(HMENU)IDC_EDIT3,hInst,NULL);

hButton1=:

BUTTON"

NULL,WS_CHILD|WS_VISIBLE|WS_BORDER,30,430,100,20,hWnd,(HMENU)IDC_BUTTON1,hInst,NULL);

hButton2=:

NULL,WS_CHILD|WS_VISIBLE|WS_BORDER,200,430,100,20,hWnd,(HMENU)IDC_BUTTON2,hInst,NULL);

hButton3=:

NULL,WS_CHILD|WS_VISIBLE|WS_BORDER,370,430,100,20,hWnd,(HMENU)IDC_BUTTON3,hInst,NULL);

hButton4=:

NULL,WS_CHILD|WS_VISIBLE|WS_BORDER,540,430,100,20,hWnd,(HMENU)IDC_BUTTON4,hInst,NULL);

:

SetWindowText(hButton1,"

加法"

);

SetWindowText(hButton2,"

减法"

SetWindowText(hButton3,"

乘法"

SetWindowText(hButton4,"

除法"

hStatic1=:

STATIC"

NULL,WS_CHILD|WS_VISIBLE,150,30,20,20,hWnd,NULL,hInst,NULL);

hStatic2=:

NULL,WS_CHILD|WS_VISIBLE,350,30,20,20,hWnd,NULL,hInst,NULL);

hStatic3=:

NULL,WS_CHILD|WS_VISIBLE,150,130,20,20,hWnd,NULL,hInst,NULL);

hStatic4=:

NULL,WS_CHILD|WS_VISIBLE,350,130,20,20,hWnd,NULL,hInst,NULL);

hStatic5=:

NULL,WS_CHILD|WS_VISIBLE,150,230,20,20,hWnd,NULL,hInst,NULL);

hStatic6=:

NULL,WS_CHILD|WS_VISIBLE,350,230,20,20,hWnd,NULL,hInst,NULL);

hStatic7=:

NULL,WS_CHILD|WS_VISIBLE,150,330,20,20,hWnd,NULL,hInst,NULL);

hStatic8=:

NULL,WS_CHILD|WS_VISIBLE,350,330,20,20,hWnd,NULL,hInst,NULL);

SetWindowText(hStatic1,"

+"

SetWindowText(hStatic2,"

="

SetWindowText(hStatic3,"

-"

SetWindowText(hStatic4,"

SetWindowText(hStatic5,"

*"

SetWindowText(hStatic6,"

SetWindowText(hStatic7,"

/"

SetWindowText(hStatic8,"

break;

caseWM_COMMAND:

wmId=LOWORD(wParam);

wmEvent=HIWORD(wParam);

//分析菜单选择:

switch(wmId)

caseIDC_BUTTON1:

//加法

charop1[11],op2[11],result[11];

intn1,n2,nResult;

:

GetWindowText(hEdit1,op1,10);

GetWindowText(hEdit2,op2,10);

n1=atoi(op1);

n2=atoi(op2);

nResult=n1+n2;

sprintf(result,"

%d"

nResult);

SetWindowText(hResult1,result);

break;

caseIDC_BUTTON2:

//减法

charop3[11],op4[11],result1[11];

intn3,n4,nResult1;

GetWindowText(hEdit3,op3,10);

GetWindowText(hEdit4,op4,10);

n3=atoi(op3);

n4=atoi(op4);

nResult1=n3-n4;

sprintf(result1,"

nResult1);

SetWindowText(hResult2,result1);

caseIDC_BUTTON3:

//乘法

charop5[11],op6[11],result2[11];

intn5,n6,nResult2;

GetWindowText(hEdit5,op5,10);

GetWindowText(hEdit6,op6,10);

n5=atoi(op5);

n6=atoi(op6);

nResult2=n5*n6;

sprintf(result2,"

nResult2);

SetWindowText(hResult3,result2);

caseIDC_BUTTON4:

//除法

charop7[11],op8[11],result3[11];

intn7,n8,nResult3;

GetWindowText(hEdit7,op7,10);

GetWindowText(hEdit8,op8,10);

n7=atoi(op7);

n8=atoi(op8);

if(n8==0)

{

:

SetWindowText(hResult4,"

error:

除数不能为0..."

break;

}

nResult3=n7/n8;

sprintf(result3,"

nResult3);

SetWindowText(hResult4,result3);

caseIDM_ABOUT:

DialogBox(hInst,MAKEINTRESOURCE(IDD_ABOUTBOX),hWnd,About);

caseIDM_EXIT:

DestroyWindow(hWnd);

default:

returnDefWindowProc(hWnd,message,wParam,lParam);

caseWM_PAINT:

hdc=BeginPaint(hWnd,&

ps);

在此添加任意绘图代码...

EndPaint(hWnd,&

caseWM_DESTROY:

PostQuitMessage(0);

default:

returnDefWindowProc(hWnd,message,wParam,lParam);

return0;

//“关于”框的消息处理程序。

INT_PTRCALLBACKAbout(HWNDhDlg,UINTmessage,WPARAMwParam,LPARAMlParam)

UNREFERENCED_PARAMETER(lParam);

caseWM_INITDIALOG:

return(INT_PTR)TRUE;

if(LOWORD(wParam)==IDOK||LOWORD(wParam)==IDCANCEL)

EndDialog(hDlg,LOWORD(wParam));

return(INT_PTR)TRUE;

return(INT_PTR)FALSE;

5执行过程截屏

6总结

作了这个作业之后,我对上学期的Windows操作又再一步加深了。

再进一步学习中发现了一些问题。

(1)我并不明白其中的有些句柄的意义。

hEdit1=:

NULL,WS_CHILDWS_VISIBLE|WS_BORDER,30,30,100,20,hWnd,(HMENU)IDC_EDIT1,hInst,NULL);

这其中的30,30,100,20到底代表的是什么?

经过我的深入查阅资料才知道,第一个数字其实代表的是X坐标,第二个则是Y坐标,第三个是窗体宽度,第四个则是窗体高度。

(2)因为不熟悉Windows操作,所以经常会写错、泄露等等。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 哲学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1