1. 程式人生 > 其它 >【Visual C++】遊戲開發筆記二十六 DirectX 11各元件的介紹&第一個DirectX 11 Demo的建立

【Visual C++】遊戲開發筆記二十六 DirectX 11各元件的介紹&第一個DirectX 11 Demo的建立

#include<Windows.h>
 
//函式宣告
LRESULT CALLBACK WndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam );
 
 
//****wWinMain函式,程式入口點函式**************************************
int WINAPI wWinMain( HINSTANCE hInstance, HINSTANCE prevInstance, LPWSTR cmdLine,int cmdShow )
{
    UNREFERENCED_PARAMETER( prevInstance );
    UNREFERENCED_PARAMETER( cmdLine );
      
    WNDCLASSEX wndClass 
= { 0 }; wndClass.cbSize = sizeof( WNDCLASSEX ) ; wndClass.style = CS_HREDRAW | CS_VREDRAW; wndClass.lpfnWndProc = WndProc; wndClass.hInstance = hInstance; wndClass.hCursor = LoadCursor( NULL, IDC_ARROW); wndClass.hbrBackground = ( HBRUSH )(COLOR_WINDOW + 1 ); wndClass.lpszMenuName
= NULL; wndClass.lpszClassName =L"DIRECTX11BookWindowClass"; if( !RegisterClassEx( &wndClass ) ) return -1; RECT rc = { 0, 0, 640, 480 }; AdjustWindowRect( &rc,WS_OVERLAPPEDWINDOW, FALSE ); HWND hwnd = CreateWindow( L"DIRECTX11BookWindowClass",L"Blank Win32 Window
", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT, rc.right - rc.left, rc.bottom - rc.top, NULL, NULL,hInstance, NULL ); if( !hwnd ) return -1; ShowWindow( hwnd, cmdShow ); // 初始化 MSG msg = { 0 }; while( msg.message != WM_QUIT ) { if( PeekMessage( &msg, 0, 0, 0,PM_REMOVE ) ) { TranslateMessage( &msg ); DispatchMessage( &msg ); } else { // 進行更新 // 進行繪圖操作 } } // 收尾工作 return static_cast<int>( msg.wParam); } //****訊息處理函式*********************************** LRESULT CALLBACK WndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ) { PAINTSTRUCT paintStruct; HDC hDC; switch( message ) { case WM_PAINT: hDC = BeginPaint( hwnd,&paintStruct ); EndPaint( hwnd, &paintStruct); break; case WM_DESTROY: PostQuitMessage( 0 ); break; default: return DefWindowProc( hwnd,message, wParam, lParam ); } return 0; }