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

📄 firstwin.cpp

📁 《游戏编程指南》这是一本很好的游戏开发指导教材,并且附有源代码
💻 CPP
字号:
#include <windows.h>

//函数声明
BOOL InitWindow( HINSTANCE hInstance, int nCmdShow );
LRESULT CALLBACK WinProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam );

//变量说明
HWND hWnd; //窗口句柄
//************************************************************
//函数:WinMain( )
//功能:Windows程序入口函数。创建主窗口,处理消息循环
//************************************************************
int PASCAL WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    if ( !InitWindow( hInstance, nCmdShow ) ) 
		return FALSE; //创建主窗口
    //如果创建不成功则返回FALSE并同时退出程序
    MSG msg;
    //进入消息循环:
    for(;;)
	{
	    if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
		{
		    if ( msg.message==WM_QUIT) 
				break;
		    TranslateMessage(&msg); 
		    DispatchMessage(&msg);
		}
	}
    return msg.wParam;
}


//************************************************************
//函数:InitWindow( )
//功能:创建窗口
//************************************************************

static BOOL InitWindow( HINSTANCE hInstance, int nCmdShow )
{
	//定义窗口风格:
	WNDCLASS wc; 
	wc.style = NULL;
	wc.lpfnWndProc = (WNDPROC)WinProc;
	wc.cbClsExtra = 0;
	wc.cbWndExtra = 0;
	wc.hInstance = hInstance;
	wc.hIcon = NULL;
	wc.hCursor = NULL;
	wc.hbrBackground = CreateSolidBrush (RGB(100, 0, 0)); //暗红色的背景
	wc.lpszMenuName = NULL;
	wc.lpszClassName = "My_Test";
	RegisterClass(&wc);//注册窗口
    //按所给参数创造窗口
    hWnd = CreateWindow("My_Test",
            "My first program",
            WS_POPUP|WS_MAXIMIZE,0,0,
            GetSystemMetrics( SM_CXSCREEN ), //此函数返回屏幕宽度
            GetSystemMetrics( SM_CYSCREEN ), //此函数返回屏幕高度
            NULL,NULL,hInstance,NULL);
	if( !hWnd ) return FALSE;
	ShowWindow(hWnd,nCmdShow);//显示窗口
	UpdateWindow(hWnd);//刷新窗口
	return TRUE;
}


//************************************************************
//函数:WinProc( )
//功能:处理窗口消息
//************************************************************

LRESULT CALLBACK WinProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
{
    switch( message )
	{
        case WM_KEYDOWN://击键消息
        switch( wParam )
		{
            case VK_ESCAPE:
            MessageBox(hWnd,"ESC键按下了! 确定后退出!","Keyboard",MB_OK);
            PostMessage(hWnd, WM_CLOSE, 0, 0);//给窗口发送WM_CLOSE消息
            break;
		}
        return 0; //处理完一个消息后返回0

		case WM_CLOSE: //准备退出
		DestroyWindow( hWnd ); //释放窗口
		return 0;

        case WM_RBUTTONDOWN:
        MessageBox(hWnd,"鼠标右键按下了!","Mouse",MB_OK);
        return 0;

	    case WM_DESTROY: //如果窗口被人释放…
	    PostQuitMessage( 0 ); //给窗口发送WM_QUIT消息
	    return 0;
	}
    
	//调用缺省消息处理过程
    return DefWindowProc(hWnd, message, wParam, lParam); 
}

⌨️ 快捷键说明

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