⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄

📁 坦克大战游戏.很值得学习的东东.希望对大家有帮助
💻
字号:
//********************************
//          WinMain  
//********************************
//入口函数
//创建于 2007.10 修改于 2008.10
//吴文捷 
/////////////////////////////////
#include "stdafx.h"
#include "windows.h"
#include "MyGame.h"
#include "Control.h"
#include "resource.h"

HWND g_hwnd;

//函数声明
LRESULT CALLBACK WndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam );  //声明消息处理函数

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nShowCmd );  //声明程序入口函数

//程序入口函数定义
int WINAPI WinMain( HINSTANCE hInstance, 
				   HINSTANCE hPrevInstance,
				   LPSTR lpCmdLine,
				   int nCmdShow )
{
    WNDCLASS wcApp;  //定义窗口类	
    MSG msg;         //定义windows消息
	HWND ghWnd=NULL;  //定义主窗口句柄
	char* szAppName="windows API Application";  //程序名称
	char* szAppTitle="Directx 窗口程序";    //程序主窗口标题

//给窗口属性赋值
	wcApp.style =CS_HREDRAW;  //定义窗口风格
    wcApp.lpfnWndProc =WndProc;  //消息处理
	wcApp.cbWndExtra =0;
	wcApp.cbClsExtra =0;
	wcApp.hInstance =hInstance;  //指定程序句柄
	wcApp.hIcon =LoadIcon(NULL,"IDI_ICON1");  //加载程序图标
	wcApp.hCursor =LoadCursor(NULL,IDC_ARROW);  //加载鼠标样式
	wcApp.hbrBackground =(HBRUSH)COLOR_ACTIVEBORDER;  //设置窗口背景色
	wcApp.lpszMenuName =NULL;                         //不设置窗口菜单
	wcApp.lpszClassName =szAppName;                   //设置窗口类名

	RegisterClass(&wcApp);                            //注册窗口类
//调用函数建立窗口
    ghWnd=CreateWindow(szAppName,                     //注册窗口类名
		               szAppTitle,                    //设置窗口标题
		               WS_POPUP,                      //设置窗口风格
					   100,100,                       //设置窗口坐标
					   350,300,                       //设置窗口宽度、高度
					   NULL,NULL,                     //父窗口句柄、菜单句柄
					   hInstance,                     //程序实例句柄
					   NULL);
    if(NULL==ghWnd)
		return 0;  //如果窗口建立失败则返回
	ShowWindow(ghWnd,nCmdShow);  //显示窗口 SW_MAXIMIZE 显示最大化窗口
	UpdateWindow(ghWnd);         //更新窗口

	g_hwnd=ghWnd;  //取得程序主窗口句柄

//初始化各Directx部件
	if(!ddraw.InitDDraw(ghWnd)){return 0;}  //如果初始化Directx失败则退出
	if(!dinput.InitDinput(hInstance,ghWnd)){return 0;} 
    if(!dsound.InitDSound(ghWnd)){return 0;} 

	MyGame  mygame;
	//game.SetDevMode();  //设置屏幕分辨率
    mygame.GameInit();   //[初始化游戏]

//创建消息循环
    ZeroMemory( &msg, sizeof(msg) );  
    while( msg.message!=WM_QUIT )
    {
        if( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) )
        {
			mygame.GameEnd();  //结束游戏

            TranslateMessage( &msg );
            DispatchMessage( &msg );
        }
        else
		{	  
			mygame.GameStart();  //进入游戏周期 

		}
		    ValidateRect( ghWnd, NULL );   
	}
   
    return  msg.wParam;
}

//消息处理函数定义
LRESULT CALLBACK WndProc( HWND hwnd,  //窗口句柄
						 UINT message,  //消息标识
						 WPARAM wParam,  //消息参数 
						 LPARAM lParam )  //消息参数
{	
//以下消息将在dinput中
	switch(message)
	{
	case WM_CREATE:
		//MessageBox(GetFocus(),"收到WM_CREATE消息,建立窗口!","窗口建立!",MB_OK|MB_ICONEXCLAMATION);
		break;	
	case WM_LBUTTONDOWN:  //捕获鼠标消息
		//MessageBox(GetFocus(),"收到WM_LBUTTONDOWN消息!","按下了左键!",MB_OK|MB_ICONINFORMATION);
		break;
	case WM_DESTROY:
//       MessageBox(GetFocus(),"收到WM_DESTROY消息!","窗口关闭!",MB_OK|MB_ICONHAND);
		PostQuitMessage(0);  //通知windows,线程已发出终止请求
		break;
	case WM_KEYDOWN:    //捕获按键消息
		switch ( wParam )
		{
		case VK_ESCAPE:
			//PostQuitMessage( NULL );
			break;
		}/*
//=========================================================
//以下的将在游戏循环中调用HandleKeys()自定义函数
//利用GetAsyncKeyState()函数检查键盘状态以提高按键的灵敏度
//=========================================================
		case VK_RETURN :
			Start=true;
			break;
		case VK_UP:
		case 'W':
			break;
		case VK_LEFT:
		case 'A':
			break;
		case VK_RIGHT:
		case 'D':
			break;
		case VK_DOWN:
		case 'S':
			break;
		}
	case WM_KEYUP: 
		switch (wParam)
		{
		case 'J':			
			break;
		case 'W':
		case 'S':
		case 'A':
		case 'D':
		case VK_LEFT:
		case VK_RIGHT:
		case VK_DOWN:
		case VK_UP:
			 break;
		}
		break;
	*/
	default :
		//没有其他消息时,windows将调用此默认函数进行处理
	    return DefWindowProc(hwnd,message,wParam,lParam);	
	}

    return FALSE;

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -