可视化程序设计实验三Word文件下载.docx
- 文档编号:22681796
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:12
- 大小:110.93KB
可视化程序设计实验三Word文件下载.docx
《可视化程序设计实验三Word文件下载.docx》由会员分享,可在线阅读,更多相关《可视化程序设计实验三Word文件下载.docx(12页珍藏版)》请在冰豆网上搜索。
窗口显示后在客户区显示有一个红色两象素宽线内部为黄色的圆,点击A或a键则圆会放大,点击S或s则圆会缩小,点击A/a3次数后圆不能再放大,显示出一个对话框提示不能再大了,单击确定后对话框关闭,点击S/s3次数后圆不能再缩小,显示出一个对话框提示不能再小了,单击确定后对话框关闭.
要求窗口的标题栏显示你的学号和姓名,并将圆的面积显示在客户区的(100,20)以右的区域,格式为:
圆的面积=(xxxx)平方立米.
四.实验结果及截图:
1实验程序运行结果:
2按下按键‘a’或‘A’图形变大
3.按下按键‘a’或‘A’三次后图形无法变大弹出提示框
4.按下按键‘s’或‘S’图形变小
5.按下按键‘s’或‘S’三次后图形无法变大弹出提示框
四.源程序
#include<
windows.h>
stdlib.h>
string.h>
WNDCLASSEXwndclass;
HWNDhWnd;
MSGmsg;
LRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);
voidDraw(HDChdc,inti);
voidText(HDChdc,inti);
intii=0;
intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdShow)//主函数
{
wndclass.cbSize=sizeof(WNDCLASSEX);
//窗口类的大小
wndclass.style=0;
//窗口类型为默认类型
wndclass.lpfnWndProc=WndProc;
//窗口处理函数是WndProc
wndclass.cbClsExtra=0;
//窗口类无扩展句柄
wndclass.cbWndExtra=0;
//窗口实例无扩展
wndclass.hInstance=hInstance;
//当前实例
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
//窗口类的图标
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
//窗口采用箭头光标
wndclass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH));
//窗口背景为白色
wndclass.lpszMenuName=NULL;
//窗口中无菜单
wndclass.lpszClassName="
窗口"
;
//窗口类名为"
wndclass.hIconSm=NULL;
//窗口类的小图标
if(!
RegisterClassEx(&
wndclass))//注册失败报警
{
MessageBeep(0);
returnFALSE;
}
hWnd=CreateWindow//创建窗口
(
"
//窗口类名
何博12020229"
//窗口实例的标题名
WS_OVERLAPPEDWINDOW,//窗口的风格
CW_USEDEFAULT,CW_USEDEFAULT,//窗口左上角坐标默认
CW_USEDEFAULT,CW_USEDEFAULT,//窗口高和宽默认
0,//无父窗口
0,//无主菜单
hInstance,//创建此窗口应用程序的当前句柄
0//不使用该值
);
ShowWindow(hWnd,nCmdShow);
//显示窗口
UpdateWindow(hWnd);
//绘制用户区
while(GetMessage(&
msg,NULL,0,0))//消息循环
{
TranslateMessage(&
msg);
DispatchMessage(&
returnmsg.wParam;
//程序终止时将信息返回系统
}
LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,LPARAMlParam)//窗口函数代码
HDChdc;
//定义指向设备的句柄
PAINTSTRUCTps;
//定义指向包含绘图信息的结构体变量
switch(message)
caseWM_CHAR:
//按键响应
if(wParam=='
A'
||wParam=='
a'
)//A/a图形增大并显示面积
{
hdc=GetDC(hwnd);
ii++;
Text(hdc,ii);
Draw(hdc,ii);
ReleaseDC(hwnd,hdc);
}
S'
s'
)//S/s图形减小并显示面积
ii--;
break;
caseWM_PAINT:
//处理覆盖的情况
hdc=BeginPaint(hwnd,&
ps);
Draw(hdc,ii);
EndPaint(hwnd,&
caseWM_DESTROY:
//发出WM_QUIT消息
PostQuitMessage(0);
default:
returnDefWindowProc(hwnd,message,wParam,lParam);
return0;
voidDraw(HDChdc,inti)//画图函数
{
HPENhPen;
//定义指向画笔的句柄
HBRUSHhBrush;
//定义指向画刷的句柄
SetMapMode(hdc,MM_ANISOTROPIC);
//设置映像模式
if(i>
=-3&
&
i<
=3)
hPen=CreatePen(PS_SOLID,2,RGB(255,255,255));
hBrush=CreateHatchBrush(HS_BDIAGONAL,RGB(255,255,255));
//画刷
SelectObject(hdc,hBrush);
//选择画刷
SelectObject(hdc,hPen);
//选择画笔
Ellipse(hdc,0,0,1000,1000);
//清屏
hPen=CreatePen(PS_SOLID,2,RGB(255,0,0));
hBrush=CreateHatchBrush(HS_BDIAGONAL,RGB(255,255,0));
Ellipse(hdc,200-20*i,200-20*i,400+20*i,400+20*i);
//绘制圆
elseif(i<
-3)
ii=-3;
MessageBox(hWnd,"
不能再小了!
"
"
来自何博的提示"
0);
else
ii=3;
不能再大了!
voidText(HDChdc,inti)//输出文本函数
TEXTMETRICtm;
switch(i)
case0:
SetTextColor(hdc,RGB(0,0,0));
GetTextMetrics(hdc,&
tm);
TextOut(hdc,100,20,"
圆的面积=(31400)平方米"
22);
break;
case1:
圆的面积=(45216)平方米"
case2:
圆的面积=(61544)平方米"
case3:
圆的面积=(80384)平方米"
case-1:
圆的面积=(20096)平方米"
case-2:
圆的面积=(11304)平方米"
case-3:
圆的面积=(5024)平方米"
default:
SetTextColor(hdc,RGB(0,0,0));
错误!
无法再进行操作!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 可视化 程序设计 实验