Windows GUI编程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
wndclass.cbWndExtra=0; //窗口实例无扩展
wndclass.hInstance=hInstance; //当前实例句柄
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
//窗口的最小化图标为缺省图标
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW) ;
(5)在上述程序的基础上,实现一个简单的弹球游戏。
二、实验内容
1、任务
源代码:
#include "stdafx.h"
#include <windows.h>
LRESULT CALLBACKWndProc(HWND,UINT,WPARAM,LPARAM); //窗口函数说明
boolMove=false;
charlpszClassName[] = "MyWindow"; //窗口类名
charlpszTitle[]= "窗口"; //窗口标题名
//窗口类的定义
wndclass.style=0; //窗口类型为缺省类型
wndclass.lpfnWndProc=WndProc; //定义窗口处理函数
wndclass.cbClsExtra=0; //窗口类无扩展
lpszTitle, //窗口实例的标题名
WS_OVERLAPPEDWINDOW, //窗口的风格
CW_USEDEFAULT,
CW_USEDEFAULT, //窗口左上角坐标为缺省值
CW_USEDEFAULT,
CW_USEDEFAULT, //窗口的高和宽为缺省值
NULL, //此窗口无父窗口
NULL, //此窗口无主菜单
//窗口类名为"MyWindow"
//---------------以下进行窗口类的注册-------
if(!RegisterClass( &wndclass))//如果注册失败则发出警告
{MessageBeep(0);return FALSE;}
hwnd=CreateWindow
(
lpszClassName, //窗口类名
}
LRESULT CALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwParam,LPARAMlParam)
{
PAINTSTRUCTps;
HDChdc;
staticintx=100;
staticinty=100;
switch(message)
{
case WM_DESTROY:
//窗口采用箭头光标
wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
//窗口背景为白色
wndclass.lpszMenuName=NULL; //窗口中无菜单
wndclass.lpszClassName=lpszClassName;
x++;
}
EndPaint(hwnd, &ps);
DeleteObject(brush);
Sleep(100); //停0.1秒
x++;
break;
}
default: //缺省时采用系统消息缺省处理函数
returnDefWindowProc(hwnd,message,wParam,lParam);
}
UpdateWindow(hwnd);
//-----------------消息循环----------------------
while(GetMessage(&Msg, NULL, 0, 0))
{
TranslateMessage( &Msg);
DispatchMessage( &Msg);
}
returnMsg.wParam; //消息循环结束即程序终止时将信息返回系统
return(0);
}
运行结果:
运行结果分析:
三、结论
说明:
1.电子实验报告填写好后,以学生的学号+实验项目名作为该word文件名保存,例如某学生学号为********,姓名为某某,本次实验名称是:实验1类与对象,则本次实验报告的保存文件名为:01某某实验1.doc。
2.在规定的时间内,学生将本报告提交给实验指导教师。
PostQuitMessage(0);
break;
case WM_LBUTTONDOWN:
{
Move=!Move; //将Move取反。
InvalidateRect(hwnd,NUБайду номын сангаасL,1);//刷新窗口
break;
}
case WM_PAINT:
{
hdc=BeginPaint(hwnd, &ps);
intAPIENTRYWinMain(HINSTANCEhInstance,
HINSTANCEhPrevInstance,
LPSTRlpCmdLine,
intnCmdShow)
{
// TODO: Place code here.
HWNDhwnd;//定义窗口句柄
MSGMsg;//定义消息结构体
WNDCLASSwndclass;//定义窗口类
实验内容
(1)使用VC++6.0创建一个Win32应用程序,编写程序在屏幕上显示一个Windows窗口。
(2)尝试改变CreateWindow()函数中的参数,观察窗口样式发生的变化。
(3)在上述程序的基础上,利用画刷和绘图函数在窗口中绘制一个红色的小球。
(4)在上述程序的基础上,实现点击鼠标左键,小球开始水平向右移动。
HBRUSH brush =CreateSolidBrush(RGB(255,0,0));//创建一个红色的画刷
SelectObject(hdc,brush);
Ellipse(hdc,x,y,x+100,y+100);
if(Move)
{
Sleep(100); //停0.1秒
InvalidateRect(hwnd,NULL,1);
附录:电子实验报告模板
实验二Windows GUI编程
实验课程名:面向对象程序设计(C++方向)
专业班级:计算机网络技术学号:************姓名:吴昌浩
实验时间:实验地点:指导教师:
一、实验目的和要求
编程实现Windows GUI程序,理解VC++产生窗口的过程和步骤,理解消息循环和响应的机制,实现GUI绘图功能。理解GUI应用程序和控制台应用程序的区别。
hInstance, //创建此窗口的应用程序的当前句柄
NULL //不使用该值
);
//---------------显示窗口----------------------
ShowWindow(hwnd,nCmdShow) ;
//--------------绘制用户区---------------------
相关文档
最新文档