資源簡介
空格鍵每按次生成小球,共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
評論
共有 條評論