资源简介
空格键每按次生成小球,共10,然后碰撞反弹
代码片段和文件信息
#include“qiu.h“
//消息处理函数
bool ball;
int shuliang;
LRESULT CALLBACK WndProc( HWND hWnd//窗口句柄
UINT msg//消息
WPARAM wParam//消息附加信息
LPARAM lParam)//消息附加信息
{
//判断消息
switch( msg )
{
case WM_DESTROY://销毁消息
PostQuitMessage( 0 ) ;//退出消息
break ;
case WM_KEYDOWN://键盘按下
switch( wParam )//检测按下的键值
{
case VK_ESCAPE://键值是esc键
//关闭消息
PostMessage( hWnd WM_CLOSE NULL NULL ) ;
break ;
case VK_SPACE:
ball = true;
break;
}
break ;
/*case WM_KEYUP:
switch(wParam)
{
case VK_SPACE:
ball = false;
break;
}
break;*/
}
//接受没有处理的消息
return DefWindowProc( hWnd msg wParam lParam ) ;
}
//主函数
INT WINAPI WinMain( HINSTANCE hInstance//实例句柄
HINSTANCE hPrevInstance//前实例句柄
LPSTR CmdLine//命令行消息
INT CmdShow )//显示命令
{
WNDCLASS wc ;//窗口类
HWND hWnd ;//窗口句柄
MSG msg ;//消息结构体
wc.cbClsExtra = 0 ;//类的附加内存
wc.cbWndExtra = 0 ;//窗口的附加内存
//窗口背景色黑色
wc.hbrBackground = (HBRUSH)GetStockobject( BLACK_BRUSH ) ;
wc.hCursor = LoadCursor( NULL IDC_ARROW ) ;//鼠标
wc.hIcon = LoadIcon(NULL IDI_WINLOGO) ;//设置标题栏图标
wc.hInstance = hInstance ;//实例句柄
wc.lpfnWndProc = WndProc ;//指定消息处理函数
wc.lpszClassName = “window“ ;//类名
wc.lpszMenuName = NULL ;//菜单名
wc.style = CS_HREDRAW|CS_VREDRAW ;//支持垂直和水平重绘
//注册窗口类
RegisterClass( &wc ) ;
//创建窗口
hWnd = CreateWindowEx( WS_EX_TOPMOST//窗口在最顶端
“window“//窗口类
“我的第一个窗口“//窗口标题栏的名字
WS_OVERLAPPEDWINDOW//窗口风格
0 //x坐标
0 //y坐标
WINDOW_WIDTH//宽
WINDOW_HEIGHT//高
NULL//父类句柄
NULL//菜单句柄
hInstance//实例句柄
NULL ) ;//扩展参数
//窗口句柄为空代表窗口没有创建成功就返回
if ( NULL == hWnd )
{
MessageBox( NULL “窗口创建失败!“ “error“ MB_OK ) ;
return 0 ;
}
HDC hDc = GetDC( hWnd ) ;//画布
HDC hMDc = CreateCompatibleDC( hDc ) ;//位于内存和hDc相匹配的画布
//黑色的位图
HBITMAP hBitMap = CreateCompatibleBitmap( hDc WINDOW_WIDTH WINDOW_HEIGHT ) ;
//将位图画在内存画布中(重要不执行此操作不会出东西)
Selectobject( hMDc hBitMap ) ;
//挡板的笔刷
HBRUSH hBrushBar = CreateSolidBrush( 0xff00ff ) ;
//背景的颜色笔刷
HBRUSH hBBrush = CreateSolidBrush( 0x000000 ) ;
//球的颜色
HBRUSH hYBrush = CreateSolidBrush( 0x00ffff ) ;
//背景区域
RECT BRect = { 0 0 WINDOW_WIDTH WINDOW_HEIGHT } ;
//球的区域
RECT RectBall = {WINDOW_WIDTH / 2 - 25
WINDOW_HEIGHT - 120
WINDOW_WIDTH / 2 + 25
WINDOW_HEIGHT - 70} ;
//球的速度
POINT Speed = {5 5};
//创建球的矩形区域
HRGN hRgn = CreateRectRgnIndirect( &RectBall ) ;
//显示窗口
ShowWindow( hWnd CmdShow ) ;
//更新窗口
UpdateWindow( hWnd ) ;
//消息处理循环
while ( TRUE )
{
//从消息队列拾取消息
if ( PeekMessage( &msg//消息结构体
NULL//获得消息的句柄为null代表全部窗口都获得
0//获得消息的最小范围
0//获得消息的最大范围 0代表全部
PM_REMOVE ) )//从消息队列中删除消息
{
//如果消息为退出消息就跳出循环
if ( msg.message == WM_QUIT )
break ;
//转换消息
TranslateMessage( &msg ) ;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2337 2009-07-28 17:55 小球\Debug\BuildLog.htm
文件 16651 2009-07-28 17:55 小球\Debug\qiu.obj
文件 338944 2009-07-28 17:55 小球\Debug\vc70.idb
文件 94208 2009-07-28 17:55 小球\Debug\vc70.pdb
文件 110592 2009-07-28 17:55 小球\Debug\xuhaiyang.exe
文件 496312 2009-07-28 17:55 小球\Debug\xuhaiyang.ilk
文件 461824 2009-07-28 17:55 小球\Debug\xuhaiyang.pdb
文件 4933 2009-07-28 17:55 小球\qiu.cpp
文件 189 2009-07-28 17:20 小球\qiu.h
文件 35840 2009-07-29 00:11 小球\xuhaiyang.ncb
文件 907 2009-07-28 16:33 小球\xuhaiyang.sln
..A..H. 8192 2009-07-29 00:11 小球\xuhaiyang.suo
文件 3413 2009-07-28 17:20 小球\xuhaiyang.vcproj
目录 0 2009-07-28 17:55 小球\Debug
目录 0 2009-07-28 17:55 小球
----------- --------- ---------- ----- ----
1574342 15
评论
共有 条评论