0

这是创建窗口的方式。但是当我 GetClientRect 时,rcClient 比 32x32 大得多。

int nDefaultWidth = 32;
int nDefaultHeight = 32;

UINT32 winStyle = 0;

RECT rc;
SetRect( &rc, 0, 0, nDefaultWidth, nDefaultHeight );
AdjustWindowRect( &rc, winStyle, ( hMenu != NULL ) ? true : false );


// Create the render window
HWND hWnd = CreateWindow( L"Direct3DWindowClass", NULL, winStyle,
                          x, y, ( rc.right - rc.left ), ( rc.bottom - rc.top ), 0,
                          hMenu, hInstance, 0 );

RECT rcClient;
GetClientRect( hWnd, &rcClient );
4

1 回答 1

2

0作为dwStyle参数传递给AdjustWindowRect. 该值等于WS_OVERLAPPED,并AdjustWindowRect明确禁止您传递该特定值。

由于您想创建一个 32x32 窗口(即根本没有 chrome,纯客户区),您应该丢失AdjustWindowRect调用,因为它根本没有任何用途,并WS_POPUP作为窗口样式传递给CreateWindow.

于 2012-04-06T16:48:16.257 回答