因此,对于一个游戏项目,我正在创建一个游戏窗口(当然),但是我只知道窗口的客户端大小,而不是实际大小。我知道如何计算大小,但是在测试查看客户区域的大小(应该与输入相同)时,得到的结果不正确。
void NewWindow(width, height)
{
// Code setting things up here.
if (!fullscreen) // Convert client size to window size.
{
style = WS_OVERLAPPEDWINDOW;
RECT r = RECT();
r.top = 0;
r.bottom = height;
r.left = 0;
r.right = width;
AdjustWindowRect(&r, WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX, FALSE);
w = r.right;
h = r.bottom;
}
hWnd = CreateWindow(CLASS_NAME, title, style, CW_USEDEFAULT, CW_USEDEFAULT, w, h, NULL, NULL, GetModuleHandle(NULL), (LPVOID)NULL);
}
Run Code Online (Sandbox Code Playgroud)
获取客户端大小的代码是:
Size Game::GetClientSize()
{
RECT r = RECT(); …
Run Code Online (Sandbox Code Playgroud) 我有一个带有以下代码的头文件:
Microsoft::WRL:ComPtr<ID3D11Device2> m_device;
Run Code Online (Sandbox Code Playgroud)
在类定义中。Visual Studio 2013表示Microsoft不是名称空间,如果我将代码剪切并切下,然后将其放在另一个文件的另一个类中,则保持不变就可以了!
有任何想法吗?
菲利浦
编辑:突然之间(无需我进行任何更改)Intelissense现在接受Microsoft :: WRL :: ComPtry为有效,但是在我编译时它仍然给我错误,提示它不存在。