什么是SDL_WindowFlags SDL_WINDOW_INPUT_FOCUS和SDL_WINDOW_MOUSE_FOCUS用于?
如果我没有弄错,SDL_WINDOW_INPUT_GRABBED指示哪个窗口正在接收输入,如果有的话.但我根本看不出其他两个标志是什么意思.我检查了SDL_video.h以查看是否可以获得更多信息,但我读到的内容没有帮助:
SDL_WINDOW_INPUT_GRABBED = 0x00000100, /**< window has grabbed input focus */
SDL_WINDOW_INPUT_FOCUS = 0x00000200, /**< window has input focus */
SDL_WINDOW_MOUSE_FOCUS = 0x00000400, /**< window has mouse focus */
Run Code Online (Sandbox Code Playgroud)
我没有看到"窗口抓住输入焦点"和"indow有输入焦点"之间的区别.
INPUT_FOCUS仅用于键盘输入,MOUSE_FOCUS用于鼠标输入吗?在这种情况下,为什么INPUT_GRABBED不是这两者的组合?
此外,是否可以有一个鼠标焦点的窗口和另一个具有"输入"焦点的窗口(无论"输入"在这里意味着什么,除了"鼠标"),或类似的东西?
我刚刚意识到SDL_WINDOW_INPUT_GRABBED不是我想象的那样.它使用SDL_SetWindowGrab设置并强制鼠标停留在窗口内(因此窗口具有鼠标和键盘焦点).
INPUT_FOCUS标志指示窗口是否处于活动状态(具有键盘输入,也可能是其他控制器输入).
MOUSE_FOCUS标志指示鼠标是否悬停在窗口上,即使窗口未处于活动状态.