Direct3D 12 创建windows窗口

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

创建windows窗口

  环境: 1. Visual Studio 2015

新建项目

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

添加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

原文地址:https://www.cnblogs.com/jqm304775992/p/7867495.html