Direct3D 12 创建windows窗口

时间:2022-08-13 23:44:58

之前列出了计算机图形学的计划,现在开始这一阶段的学习,首先是Windows窗口的创建。

创建windows窗口

  环境: 1. Visual Studio 2015

 

新建项目

Direct3D 12  创建windows窗口

Direct3D 12  创建windows窗口

Direct3D 12  创建windows窗口

创建工程项目完成,确定为窗口:

Direct3D 12  创建windows窗口

Direct3D 12  创建windows窗口

 

添加MainWindowDemo.cpp文件

/*
实现窗口创建的六步骤:
第一步:创建入口函数WinMain
第二步:注册窗口类
第三部:实现回调函数的功能
第四步:显示窗口
第五步:更新窗口
第六步:消息循环
*/

#include
"windows.h"

//回调函数
LRESULT CALLBACK WinProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_CREATE:
{
MessageBox(NULL, L
"即将创建一个窗口!", L"Infor", MB_OK);
}
break;
case WM_DESTROY:
{
PostQuitMessage(
0);
}
break;
}
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}

//创建入口函数
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int ShowCmd)
{
HWND hWnd
= 0;

MSG nMsg
= { 0 };

//注册窗口类
WNDCLASS cs = { 0 };
cs.cbClsExtra
= 0;
cs.cbWndExtra
= 0;
cs.hbrBackground
= (HBRUSH)(COLOR_WINDOW + 2);
cs.hCursor
= NULL;
cs.hIcon
= NULL;
cs.hInstance
= hInstance;
cs.lpfnWndProc
= (WNDPROC)WinProc;
cs.lpszClassName
= L"Main";
cs.lpszMenuName
= NULL;
cs.style
= CS_VREDRAW | CS_HREDRAW;

RegisterClass(
&cs);//实现注册窗口

//创建窗口
hWnd = CreateWindow(L"Main", L"Windows", WS_OVERLAPPEDWINDOW, 200, 200, 500, 500, NULL, NULL, hInstance, NULL);
//显示窗口
ShowWindow(hWnd, SW_SHOW);
//更新窗口
UpdateWindow(hWnd);
//消息循环
while (GetMessage(&nMsg, 0, NULL, NULL))
{
TranslateMessage(
&nMsg);
DispatchMessage(
&nMsg);
}
return 0;
}

代码引用:https://www.cnblogs.com/xiaoweiwangwang/p/4079494.html