vs2017创建一个空的桌面应用程序

1.下载vs2017

这里附上下载链接
下载完成后,双击直接运行
在这里插入图片描述

2.选择安装组件

如下图所示,如果只做windows桌面开发,可以只勾选这一个
在这里插入图片描述

3.安装成功后,点击新建项目,选择windows桌面向导,然后选择桌面应用程序,空项目,点击确定,如下图所示

在这里插入图片描述
在这里插入图片描述

4.添加main.cpp文件,编写代码

选中我们的项目,然后右键选择新增,新建一个main.cpp源文件,下图均引用自微软官网。
在这里插入图片描述
在这里插入图片描述
测试代码

#include <Windows.h>

LRESULT CALLBACK GLWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
    
    
	
	//switch用来处理消息
	switch (msg) {
    
    
		case WM_CLOSE:
			PostQuitMessage(0);
			break;
		default:
			break;
	}
	
	return DefWindowProc(hwnd,msg,wParam,lParam);
}


//这里是程序入口,WINAPI WinMain
INT WINAPI WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nShowCmd) {
    
    

	//注册一个窗口
	WNDCLASSEX wndclass;
	//这里不太懂,不明白,待会去查
	//不需要为这个窗口类型申请额外的存储空间
	wndclass.cbClsExtra = 0;
	//结构体的大小
	wndclass.cbSize = sizeof(WNDCLASSEX);
	//不需要为窗口准备额外的存储空间
	wndclass.cbWndExtra = 0;
	//设置背景颜色
	wndclass.hbrBackground = NULL;
	//窗口类的光标
	wndclass.hCursor = NULL;
	//窗口类的图标,即生成的exe文件的图标长什么样
	wndclass.hIcon = NULL;
	//窗口类的任务栏图标,生成的窗口左上角地图标
	wndclass.hIconSm = NULL;
	//窗口类所在模块的实例句柄
	wndclass.hInstance = hInstance;
	//窗口的处理过程,消息响应函数
	wndclass.lpfnWndProc = GLWindowProc;
	//窗口类的名称
	wndclass.lpszClassName = L"GLWindow";
	//窗口类的菜单资源名
	wndclass.lpszMenuName = NULL;
	//类的风格
	wndclass.style = CS_VREDRAW | CS_HREDRAW;
	//真正开始注册,返回一个标记,存到atom中
	ATOM atom = RegisterClassEx(&wndclass);
	//检查注册是否成功
	if (!atom) {
    
    
		return -1;
	}
	//Create a window
	//额外的窗口风格,窗口类的名字,窗口的名字,窗口风格,起始位置x,y,宽度,长度,父窗口,菜单,实例,其它参数
	HWND hwnd = CreateWindowEx(NULL, L"GLWindow",L"OpenGL Window",WS_OVERLAPPEDWINDOW,100,100,800,600,NULL,NULL,hInstance,NULL);
	//Show window
	ShowWindow(hwnd, SW_SHOW);
	UpdateWindow(hwnd);

	//确保函数不会直接退出,
	MSG msg;
	while (true)
	{
    
    
		//如果我抓到一个消息,就去处理消息
		if (PeekMessage(&msg, NULL, NULL, NULL, PM_REMOVE)) {
    
    
			if (msg.message == WM_QUIT) {
    
    
				break;
			}
			//转换我的消息为应用程序消息
			TranslateMessage(&msg);
			//把该消息派发出去,派发到回调函数LRESULT CALLBACK GLWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
			DispatchMessage(&msg);

		}

		//draw sence

	}
	return  0;
}

测试结果如图:
在这里插入图片描述

该教程转自微软官网给的教程

附上微软官网的教程

猜你喜欢

转载自blog.csdn.net/qq_45465526/article/details/105776967