【发布时间】:2019-12-22 02:17:40
【问题描述】:
每个线程都有自己的游标计数,通过 ShowCursor 调用递增/递减。 有没有办法查询该计数器以确定光标当前是否可见?
这种模式应该可以工作,但存在一些问题:
ShowCursor (FALSE);
bool visible = (ShowCursor (TRUE) >= 0);
- Windows 应用兼容层可能会默默地不允许计数器降至 0 以下,因此第一次 ShowCursor 调用什么也不做,而第二次调用会破坏计数器。
- 它有一些不必要的副作用,例如潜在的和不必要的光标隐藏/取消隐藏
【问题讨论】:
-
"Windows 应用程序兼容性层可能会默默地不允许计数器低于 0" - 自 negative values are valid 以来令人怀疑。 “不想要的副作用,例如潜在的和不必要的光标/取消隐藏” - 也许,但它可能太快而无法真正注意到。当然,总是有
WM_SETREDRAW和LockWindowUpdate()。 -
“令人怀疑,因为负值是有效的。”是的,但是有些(旧)游戏由于某种原因,内置兼容层不允许隐藏光标。
标签: winapi