每个windows应用程序首先做的第一件事,就是要创建一个用来展示给用户的应用程序窗口。为了做这项工作,CreateDevice这个示例工程从WinMain函数开始执行。下面的代码展示窗口的初始化。
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT )
{
// Register the window class.
WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L,
GetModuleHandle(NULL), NULL, NULL, NULL, NULL,
"D3D Tutorial", NULL };
RegisterClassEx( &wc );
// Create the application's window.
HWND hWnd = CreateWindow( "D3D Tutorial", "D3D Tutorial 01: CreateDevice",
WS_OVERLAPPEDWINDOW, 100, 100, 300, 300,
GetDesktopWindow(), NULL, wc.hInstance, NULL );
前面的代码片段是标准的Windows编程。代码从定义和注册一个叫做“D3D Turorial”的窗口类开始。这个类被注册后,它使用注册类创建了一个宽高都为300像素的顶级(top-level)窗口。这个窗口没有目录和子窗口。示例代码使用WS_OVERLAPPEDWINDOW窗口风格来创建一个包含最小化,最大化和关闭按钮的普通窗口。(如果打算运行在全屏模式,窗口风格最好使用WS_EX_TOPMOST,它制定了已创建的窗口应该被放置在所有non-topmost的窗口之上,并且应该滞留在它们之上,甚至当窗口未被激活时,也应如此)当窗口被创建,示例代码调用标准的win32函数来显示和刷新窗口。
应用程序窗口一旦准备好,你就可以开始准备必要的D3D对象了。详见第二步:
初始化Direct3D