DX_WIN32程序搭建

初学!!!以下都是一些常用的,F12查看所需要的函数。
简单搭建。。。。。。

#include <Windows.h>
#include <tchar.h>
//#pragma comment(lib,"winmm.lib")
HINSTANCE g_hInstanc;//应用程序实例句柄(操作某个对象的一个指针)
HWND g_hWnd=0;//窗口句柄

/*
	HINSTANCE hInstance, //操作系统分配给该应用程序的实例句柄
	HINSTANCE hPrevInstance, //该应用程序的上一个应用程序实例句柄
	LPSTR lpCmdLine, //使用命令行执行应用程序时,命令行参数
	int nShowCmd//指定窗口如何显示
*/

//LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM);

//函数声明
LRESULT CALLBACK WindowProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);

INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
	/*
		(1)新建窗口类结构体WNDCLASSEX
		(2)注册Windows类
		(3)创建窗口
		(4)事件处理(主事件循环)
	*/
	WNDCLASSEX winClass;//创建窗口类结构体对象
	ZeroMemory(&winClass,sizeof(winClass));//对结构体归0
	winClass.cbClsExtra = 0;//原是为指示Windows将附加的运行时间信息保存到Windows类某些单元中而设计,一般设0
	winClass.cbSize = sizeof(WNDCLASSEX);//结构体大小sizeof(对象/类型)
	winClass.cbWndExtra = 0;//原是为指示Windows将附加的运行时间信息保存到Windows类某些单元中而设计,一般设0
	winClass.hbrBackground =(HBRUSH)GetStockObject(DKGRAY_BRUSH);//窗口背景颜色
	winClass.hCursor = LoadCursor(hInstance, IDC_APPSTARTING);//鼠标指针
	winClass.hIcon = LoadIcon(hInstance, IDI_APPLICATION);//应用程序图标类型
	winClass.hIconSm = 0;//小应用程序图标,如标题栏和任务栏
	winClass. hInstance = hInstance;
	winClass.lpfnWndProc = WindowProc;//消息处理函数 
	winClass.lpszClassName = TEXT("MyWindow");//窗口类名_T("Test");
	winClass.lpszMenuName = 0;//菜单资源,没有则设置为NULL
	winClass.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;//窗口样式
	
	//(2)注册Windows类
	RegisterClassExW(&winClass);//注册Windows窗口到系统中

	//(3)创建窗口                                                                    
	g_hWnd=CreateWindowEx(
		0,
		winClass.lpszClassName,
		TEXT("Win32窗口"),  
		WS_OVERLAPPEDWINDOW, 
		300,100, //CW_USEDEFAULT(300,100)位置由系统决定
		800, 
		600, 
		NULL,
		NULL,
		hInstance,
		0);
	if (g_hWnd==0)
	{
		return 0;
	}
	g_hInstanc = hInstance;
	ShowWindow(g_hWnd, SW_SHOWNORMAL);//显示窗口
	UpdateWindow(g_hWnd);//更新窗口
	 
	//(4)事件处理(主事件循环)
	static MSG msg = { 0 };//定义消息结构体对象,获取消息
	while (msg.message!=WM_QUIT)//不等于退出消息
	{
		if (PeekMessage(&msg,0,0,0,PM_REMOVE))//拉取消息
		{
			TranslateMessage(&msg);//翻译消息
			DispatchMessage(&msg);//分发消息
		}
		//游戏逻辑
		//游戏渲染
		//todo......
		//配置DX环境
	}

}
//消息处理函数(消息属于那个窗口的,消息类型,消息传过来的参数,消息传过来的参数)
LRESULT CALLBACK WindowProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
{
	switch (msg)
	{
	case WM_CLOSE://当窗口关闭时传递
		DestroyWindow(hwnd);
		break;
	case WM_DESTROY://当窗口关闭时销毁
		PostQuitMessage(0);//退出主线程
		break;
	case WM_CREATE://创建窗口消息
		OutputDebugString(TEXT("窗口创建\n"));//向后台输出消息
		break;
	default:
		break;
	}
	//系统处理
	return DefWindowProc(hwnd,msg,wparam,lparam);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值