gpt4 book ai didi

c++ - 按下 Alt-Enter 时调用什么函数?

转载 作者:太空宇宙 更新时间:2023-11-04 14:19:46 25 4
gpt4 key购买 nike

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


DXGI 警告:IDXGISwapChain::Present:由于应用程序未正确使用 IDXGISwapChain::ResizeBuffers、指定的 DXGI_MODE_DESC 在 IDXGIOutput::GetDisplayModeList 中不可用,或未使用 DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH,导致全屏显示效率低下。

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

这就是我的问题:有谁知道按下 Alt-Enter 时 Windows 和/或 DirectX 11 会调用什么函数?

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

编辑 2:我现在完全吃掉 Alt+Enter 键击并手动存储 Alt+Enter 被按下的状态,这样我就可以确定只有我的代码被调用了。然而,我上面提到的警告仍然存在。我正在关注 MSDN best practices也,所以我不知道从这里去哪里。

最佳答案

尝试处理 WM_ACTIVATEAPP消息。

我不知道你用什么框架来创建你的窗口,所以我不知道如何具体处理这个消息。

关于c++ - 按下 Alt-Enter 时调用什么函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8541694/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com