Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 按下Alt Enter键时调用什么函数?_C++_Windows_Directx 11 - Fatal编程技术网

C++ 按下Alt Enter键时调用什么函数?

C++ 按下Alt Enter键时调用什么函数?,c++,windows,directx-11,C++,Windows,Directx 11,我有一个游戏应用程序,它可以在按下Alt Enter键时全屏显示并返回到窗口。但是,当它全屏显示时,我从DirectX收到以下警告: DXGI警告:IDXGISwapChain::Present:由于应用程序未正确使用IDXGISwapChain::ResizeBuffers、指定IDXGIOutput::GetDisplayModeList中不可用的DXGI_MODE描述或未使用DXGI_SWAP_CHAIN_标志_ALLOW_MODE_开关,导致全屏演示效率低下。 通过测试,我已经排除了后

我有一个游戏应用程序,它可以在按下Alt Enter键时全屏显示并返回到窗口。但是,当它全屏显示时,我从DirectX收到以下警告:


DXGI警告:IDXGISwapChain::Present:由于应用程序未正确使用IDXGISwapChain::ResizeBuffers、指定IDXGIOutput::GetDisplayModeList中不可用的DXGI_MODE描述或未使用DXGI_SWAP_CHAIN_标志_ALLOW_MODE_开关,导致全屏演示效率低下。

通过测试,我已经排除了后两种可能性,因此我知道弹出警告的唯一原因是IDXGISwapChain::ResizeBuffers没有正确使用,或者Windows只是安装了bug。因为我无法调试第二种可能性,所以我坚持使用ResizeBuffers问题。为了调试这个,我想看看当按下Alt Enter键从窗口切换到全屏时会发生什么。然而,应用程序似乎没有调用我的ResizeDXGIBuffers方法;事实上,Alt Enter似乎嵌入了windows或DirectX中的某个地方,我不知道如何找到按下它时发出的函数调用链。编辑:当我的方法被放入WM_ACTIVATEAPP处理程序时,它被调用,但这不是我的意思。如果我从消息处理程序中取出它,窗口仍然会全屏显示,即使我没有调用任何函数使窗口全屏显示。因此,Alt+Enter必须自动调用某些内部函数才能执行此操作

这就是我的问题:有人知道当按下Alt Enter键时windows和/或DirectX 11调用什么函数吗

编辑:正如这个问题的标签所说,我正在Windows机器上使用DirectX 11。具体来说,Windows7是64位的

编辑2:我现在完全接受Alt+Enter键并手动存储按下Alt+Enter键的状态,这样我就可以确定只调用了我的代码。然而,我上面提到的警告仍然存在。我也在跟踪,所以我不知道从这里到哪里去

尝试处理该消息


我不知道您使用哪个框架来创建窗口,因此我无法告诉您如何具体处理此消息。

在查看MSDN最佳实践页面并重新编写代码以反映所描述的所有实践后,警告已消失。我希望这能帮助其他有同样问题的人


另外,感谢Hans Passant的链接。你发邮件的时候我已经修好了,不过还是谢谢你

对不起,这不是我要找的。我已经处理好了。肯定有一个嵌入式调用,它可以调整我的窗口大小,而无需我手动操作。