在我的 Windows 窗体应用程序中,我有一个 while 循环,它不断轮询操纵杆设备的值,并用这些值不断更新 GUI,然后刷新 GUI。但是,只要我处于 while 循环中,UI 就不会对任何交互做出响应。
有没有办法在我的 while 循环中查询任何 GUI 事件或交互,例如按钮点击或按键?
如果发生某些事件或交互,我希望能够退出循环。我至少希望关闭和最小化按钮起作用。
因为我只需要每秒轮询操纵杆和更新 GUI 20 次,所以大部分循环时间只是 sleep 时间。但我想在这段时间等待事件和交互。
最佳答案
您使用的是游戏 Controller 吗?如果是这样,您如何从中获取输入?
使用正常的 Windows 输入(鼠标和键盘),您将调用重写的 OnXxx 方法(或调用相应的事件)。
显然,在不停止 UI 的情况下执行阻塞或长时间运行的操作的常用方法是在单独的线程中运行操作。但是,这实际上取决于您如何从设备获取输入。
关于c++ - 我可以在表单应用程序的 while 循环中查询用户交互事件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14080694/