資源簡(jiǎn)介
空格鍵每按次生成小球,共10,然后碰撞反彈

代碼片段和文件信息
#include“qiu.h“
//消息處理函數(shù)?
bool?ball;
int?shuliang;
LRESULT?CALLBACK?WndProc(?HWND?hWnd//窗口句柄
???UINT?msg//消息
???WPARAM?wParam//消息附加信息
???LPARAM?lParam)//消息附加信息
{
//判斷消息
switch(?msg?)
{
case?WM_DESTROY://銷(xiāo)毀消息
PostQuitMessage(?0?)?;//退出消息
break?;
case?WM_KEYDOWN://鍵盤(pán)按下
switch(?wParam?)//檢測(cè)按下的鍵值
{
case?VK_ESCAPE://鍵值是esc鍵
//關(guān)閉消息
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;*/
}
//接受沒(méi)有處理的消息
return?DefWindowProc(?hWnd?msg?wParam?lParam?)?;
}
//主函數(shù)?
INT?WINAPI?WinMain(?HINSTANCE?hInstance//實(shí)例句柄
????HINSTANCE?hPrevInstance//前實(shí)例句柄
LPSTR?CmdLine//命令行消息
INT?CmdShow?)//顯示命令
{
WNDCLASS?wc?;//窗口類(lèi)
HWND?hWnd?;//窗口句柄
MSG?msg?;//消息結(jié)構(gòu)體
wc.cbClsExtra?=?0?;//類(lèi)的附加內(nèi)存
wc.cbWndExtra?=?0?;//窗口的附加內(nèi)存
//窗口背景色黑色
wc.hbrBackground?=?(HBRUSH)GetStockobject(?BLACK_BRUSH?)?;
wc.hCursor?=?LoadCursor(?NULL?IDC_ARROW?)?;//鼠標(biāo)
wc.hIcon?=?LoadIcon(NULL?IDI_WINLOGO)?;//設(shè)置標(biāo)題欄圖標(biāo)
wc.hInstance?=?hInstance?;//實(shí)例句柄
wc.lpfnWndProc?=?WndProc?;//指定消息處理函數(shù)
wc.lpszClassName?=?“window“?;//類(lèi)名
wc.lpszMenuName?=?NULL?;//菜單名
wc.style?=?CS_HREDRAW|CS_VREDRAW?;//支持垂直和水平重繪
//注冊(cè)窗口類(lèi)
RegisterClass(?&wc?)?;
//創(chuàng)建窗口
hWnd?=?CreateWindowEx(?WS_EX_TOPMOST//窗口在最頂端
???????????????????“window“//窗口類(lèi)
???“我的第一個(gè)窗口“//窗口標(biāo)題欄的名字
???WS_OVERLAPPEDWINDOW//窗口風(fēng)格
???0?//x坐標(biāo)
???0?//y坐標(biāo)
???WINDOW_WIDTH//寬
???WINDOW_HEIGHT//高
???NULL//父類(lèi)句柄
???NULL//菜單句柄
???hInstance//實(shí)例句柄
???NULL?)?;//擴(kuò)展參數(shù)
//窗口句柄為空代表窗口沒(méi)有創(chuàng)建成功就返回
if?(?NULL?==?hWnd?)
{
MessageBox(?NULL?“窗口創(chuàng)建失敗!“?“error“?MB_OK?)?;
return?0?;
}
HDC?hDc?=?GetDC(?hWnd?)?;//畫(huà)布
HDC?hMDc?=?CreateCompatibleDC(?hDc?)?;//位于內(nèi)存和hDc相匹配的畫(huà)布
//黑色的位圖
HBITMAP?hBitMap?=?CreateCompatibleBitmap(?hDc?WINDOW_WIDTH?WINDOW_HEIGHT?)?;
//將位圖畫(huà)在內(nèi)存畫(huà)布中(重要不執(zhí)行此操作不會(huì)出東西)
Selectobject(?hMDc?hBitMap?)?;
//擋板的筆刷
HBRUSH?hBrushBar?=?CreateSolidBrush(?0xff00ff?)?;
//背景的顏色筆刷
HBRUSH?hBBrush?=?CreateSolidBrush(?0x000000?)?;?
//球的顏色
HBRUSH?hYBrush?=?CreateSolidBrush(?0x00ffff?)?;?
//背景區(qū)域
RECT?BRect?=?{?0?0?WINDOW_WIDTH?WINDOW_HEIGHT?}?;
//球的區(qū)域
RECT?RectBall?=?{WINDOW_WIDTH?/?2?-?25
?????????????????WINDOW_HEIGHT?-?120
?????????????????WINDOW_WIDTH?/?2?+?25
?WINDOW_HEIGHT?-?70}?;
//球的速度
POINT?Speed?=?{5?5};
//創(chuàng)建球的矩形區(qū)域
HRGN?hRgn?=?CreateRectRgnIndirect(?&RectBall?)?;
//顯示窗口
ShowWindow(?hWnd?CmdShow?)?;
//更新窗口
UpdateWindow(?hWnd?)?;
//消息處理循環(huán)
while?(?TRUE?)
{
//從消息隊(duì)列拾取消息
if?(?PeekMessage(?&msg//消息結(jié)構(gòu)體
??NULL//獲得消息的句柄為null代表全部窗口都獲得
??0//獲得消息的最小范圍
??0//獲得消息的最大范圍?0代表全部
??PM_REMOVE?)?)//從消息隊(duì)列中刪除消息
{
//如果消息為退出消息就跳出循環(huán)
if?(?msg.message?==?WM_QUIT?)
break?;
//轉(zhuǎn)換消息
TranslateMessage(?&msg?)?;
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件???????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
評(píng)論
共有 條評(píng)論