初学!!!以下都是一些常用的,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);
}