梁志斌的专栏

游戏开发 DirectX技术

 
首页>>
关于作者

作  者:梁  志  斌

QQ   :3055720

QQ群:14739153

友情链接
搜索日志
访问计数
最新评论

[置顶]初始化一个全屏幕的窗口 [2005-8-11]
happy201 发表在 编程基础
初始化一个全屏幕的窗口
这是以前的一个基础程序,发到这里的时候忘记了,现在补充上。
注释很详细,代码也很整洁,相信大家不难看懂。
完整代码如下:




//****************************************************************************
//说明: 
//开发环境:Visual C++.NET 7.1.3091 DirectX 9.0C
//操作系统:WindowsXP SP2
//硬    件:AMD Athlon XP 2500+,DDR400 256MB,Geforce4 MX440 AGP 8X 64MB
//****************************************************************************
//包含文件
#include<windows.h>
//全局变量
HWND hWnd;
//函数声明
BOOL InitWindow(HINSTANCE hInstance,int nCmdShow);
LRESULT CALLBACK WinProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam);
//*******************************************************************
//函数:InitWindow()
//功能:创建窗口
//编写人:梁志斌
//*******************************************************************
static BOOL InitWindow(HINSTANCE hInstance,int nCmdShow)
{
	WNDCLASS wndcls; 
	wndcls.cbClsExtra=0;          			  //分配给窗口类结构之后的额外字节数 
	wndcls.cbWndExtra=0;          			  //分配给窗口实例之后的额外的字节数 
	wndcls.hbrBackground=CreateSolidBrush(RGB(58,110,165));//窗口的背景色:桌面背景色 
	wndcls.hCursor=LoadCursor(NULL,IDC_ARROW);     	  //窗口中的鼠标形状 
	wndcls.hIcon=LoadIcon(NULL,"CounterStrike.ico");   	  //窗口的图标 
	wndcls.hInstance=hInstance;         		  //窗口所对应的应用程序的句柄 
	wndcls.lpfnWndProc=(WNDPROC)WinProc;     	   	  //窗口消息处理函数的指针 
	wndcls.lpszClassName="CounterStrike";     		  //窗口的类名称 
	wndcls.lpszMenuName=NULL;         		  //窗口的菜单资源名称 
	wndcls.style= NULL;           			  //窗口的风格 
	if(!RegisterClass(&wndcls))         		  //注册窗口 
	{  
		::MessageBox(0, "RegisterClass() - FAILED", 0, 0);  
		return FALSE; 
	}
	hWnd=CreateWindow("CounterStrike","CounterStrike",WS_POPUP|WS_MAXIMIZE|WS_MINIMIZE,0,0, 
		GetSystemMetrics(SM_CXSCREEN),        	//此函数返回屏幕宽度 
		GetSystemMetrics(SM_CYSCREEN),        	//此函数返回屏幕高度 
		GetDesktopWindow(),NULL,hInstance,NULL); 
	if(!hWnd) 
	{  
		::MessageBox(0, "CreateWindow() - FAILED", 0, 0);  
		return FALSE; 
	}
	ShowWindow(hWnd,SW_SHOWNORMAL); 
	UpdateWindow(hWnd); 
	return TRUE;
}
//*******************************************************************
//函数:WinProc()
//功能:消息处理函数
//编写人:梁志斌
//*******************************************************************
LRESULT CALLBACK WinProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
{ 
	switch(msg)
	{ 
		case WM_KEYDOWN:   			     //击键消息  
			switch(wParam)  
			{  
				case VK_ESCAPE:   
				DestroyWindow(hWnd);      //释放窗口   
				PostQuitMessage(0);       //给窗口发送WM_QUIT消息   
				return 0;    	     //处理完一个消息后返回0  
                                 }
		return DefWindowProc(hWnd,msg,wParam,lParam);  //调用缺省消息处理过程
	}
}
//*******************************************************************
//函数:WinMain()
//功能:Windows入口函数。创建主窗口,处理消息循环
//编写人:梁志斌
//*******************************************************************
int WINAPI WinMain(HINSTANCE hInstance,       //hInstance:表示该应用程序的句柄       
		HINSTANCE hPrevInstance,//hPrevInstance:为了保持与16位Windows应用程序的兼容性       
		LPSTR lpCmdLine,        //lpCmdLine:指向命令行参数字符串的指针      
		int nCmdShow)           //nCmdShow:指向应用程序窗口显示方式的参数
{  
	InitWindow(hInstance,nCmdShow);
	MSG msg; 
	ZeroMemory( &msg, sizeof(msg) );
	while(GetMessage(&msg,NULL,0,0))  //消息循环
	{   
		TranslateMessage( &msg );   
		DispatchMessage( &msg );   
	}
	return (int)msg.wParam;
}
≡≡≡≡≡ 评论(共 条)我要评论
 

 Copyright  @  好想~~~~好想 2005.03