c++ - 使用 SDL_SetVideoMode 时,有没有办法获取内部 SDL_Window 指针或 ID?

标签 c++ sdl

如果您使用 SDL_SetVideoMode() 创建窗口,您将返回一个表面,而不是窗口句柄。有没有办法获得 SDL_Window 句柄?我知道有一个 SDL_GetWindowFromID 函数,但我也不确定如何获取 ID,除了 SDL_GetWindowID 函数,这需要我已经拥有窗口句柄。

有什么建议吗?请注意,保持跨平台可移植性非常重要,因此我更愿意尽可能坚持使用内置 SDL 功能。

如果有帮助,我正在尝试获取和设置窗口位置和窗口大小,而这些函数需要窗口句柄。

谢谢!

编辑:我还应该提到我正在根据用户的请求更改视频模式,所以我不能只使用默认 ID 1,因为每次我调用 SDL_SetVideoMode() 时此 ID 都会更改。

最佳答案

我在使用 SDL-1.2.15 for windows 时遇到了同样的问题,但是 GetActiveWindow 解决了这个问题。

您可以像这样获取 SDL 窗口句柄:

...
screen = SDL_SetVideoMode(w, h, 0, flags);
...
HWND hnd= GetActiveWindow();

看这个: GetActiveWindow function

关于c++ - 使用 SDL_SetVideoMode 时,有没有办法获取内部 SDL_Window 指针或 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2971167/

相关文章:

c++ - 在 mac 上使用带有 Xcode 的 c++ 打开带有 arduino 的串口

c - 杀死 SDL 2 线程 (C)

c++ - 使用 ostream 使用 opengl 在 SDL 中打印乐谱?

c++ - 在 SDL_blitsurface 中使用 SDL_Rect vector 时出现 C++ 运行时错误

python - 你能让 Pygame 在视网膜屏幕上正常工作吗?

c++ - 必须定义 LNK1561 入口点 - SDL

面向 C# 开发人员的 C++

c++ - 引用 void* 的隐式类型转换

c++ - "factor out"公共(public)字段有什么办法可以节省空间?

c++ - 如何将OpenCl库链接到Clion IDE