Direct3D 12 建立windows窗口

以前列出了計算機圖形學的計劃,如今開始這一階段的學習,首先是Windows窗口的建立。html

建立windows窗口windows

  環境: 1. Visual Studio 2015函數

 

新建項目學習

建立工程項目完成,肯定爲窗口:ui

 

添加MainWindowDemo.cpp文件spa

/*
實現窗口建立的六步驟:
第一步:建立入口函數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;
}

代碼引用:http://www.javashuo.com/article/p-ogtuipvg-ks.html3d

相關文章
相關標籤/搜索