Direct3D 10教程0:Win32编程基础

D3D10 SDK 专栏收录该内容
12 篇文章 1 订阅

概览

在这个预备教程中,我们学习创建一个Win32程序的必要步骤,并创建一个空白窗体用于Direct3D 10。

程序截图

源代码

文件位置:(SDK root)\Samples\C++\Direct3D10\Tutorials\Tutorial00。

本网站下载:Tutorial00.zip

创建窗口

每个Windows程序需要至少一个窗体对象。在进行Direct3D 10编程之前,程序必须是一个可工作的窗体对象。基本步骤有三步:

1.注册一个窗体类。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 注册窗体类
WNDCLASSEX wcex;
wcex.cbSize = sizeof ( WNDCLASSEX );
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon( hInstance, ( LPCTSTR )IDI_TUTORIAL1 );
wcex.hCursor = LoadCursor( NULL, IDC_ARROW );
wcex.hbrBackground = ( HBRUSH )( COLOR_WINDOW + 1 );
wcex.lpszMenuName = NULL;
wcex.lpszClassName = L "TutorialWindowClass" ;
wcex.hIconSm = LoadIcon( wcex.hInstance, ( LPCTSTR )IDI_TUTORIAL1 );
if ( !RegisterClassEx( &wcex ) )
     return E_FAIL;

2.创建一个窗体对象。


1
2
3
4
5
6
7
8
9
10
11
// 创建一个窗体
g_hInst = hInstance;
RECT rc = { 0, 0, 640, 480 };
AdjustWindowRect( &rc, WS_OVERLAPPEDWINDOW, FALSE );
g_hWnd = CreateWindow( L "TutorialWindowClass" , L "Direct3D 10教程0: 创建一个窗口" , WS_OVERLAPPEDWINDOW,
                        CW_USEDEFAULT, CW_USEDEFAULT, rc.right - rc.left, rc.bottom - rc.top, NULL, NULL, hInstance,
                        NULL );
if ( !g_hWnd )
     return E_FAIL;
 
ShowWindow( g_hWnd, nCmdShow );

3.接收并处理window发来的消息。


1
2
3
4
5
6
7
// 消息循环
MSG msg = {0};
while ( GetMessage( &msg, NULL, 0, 0 ) )
{
     TranslateMessage( &msg );
     DispatchMessage( &msg );
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
LRESULT CALLBACK WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
{
     PAINTSTRUCT ps;
     HDC hdc;
 
     switch ( message )
     {
         case WM_PAINT:
             hdc = BeginPaint( hWnd, &ps );
             EndPaint( hWnd, &ps );
             break ;
 
         case WM_DESTROY:
             PostQuitMessage( 0 );
             break ;
 
         default :
             return DefWindowProc( hWnd, message, wParam, lParam );
     }
 
     return 0;
}

以上就是创建一个窗口对象的最小步骤,如果编译这个代码,屏幕上就会显示一个白色背景的窗口。

  • 2
    点赞
  • 1
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值