c++ - 我可以在表单应用程序的 while 循环中查询用户交互事件吗?

标签 c++ winforms user-interface c++-cli while-loop

在我的 Windows 窗体应用程序中,我有一个 while 循环,它不断轮询操纵杆设备的值,并用这些值不断更新 GUI,然后刷新 GUI。但是,只要我处于 while 循环中,UI 就不会对任何交互做出响应。

有没有办法在我的 while 循环中查询任何 GUI 事件或交互,例如按钮点击或按键?

如果发生某些事件或交互,我希望能够退出循环。我至少希望关闭和最小化按钮起作用。

因为我只需要每秒轮询操纵杆和更新 GUI 20 次,所以大部分循环时间只是 sleep 时间。但我想在这段时间等待事件和交互。

最佳答案

您使用的是游戏 Controller 吗?如果是这样,您如何从中获取输入?

使用正常的 Windows 输入(鼠标和键盘),您将调用重写的 OnXxx 方法(或调用相应的事件)。

显然,在不停止 UI 的情况下执行阻塞或长时间运行的操作的常用方法是在单独的线程中运行操作。但是,这实际上取决于您如何从设备获取输入。

关于c++ - 我可以在表单应用程序的 while 循环中查询用户交互事件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14080694/

相关文章:

c++ - 成员函数指针和模板的继承

c++ - 查找数据集的质心

winforms - 如何将图像嵌入到Outlook HTML电子邮件中?

Java GUI 不会显示我想要的提示

如果一次性直接输入,C++ 程序将失败

c++ - 尽管使用 std::is_same 测试它是一个 std::string,但无法将类型名从 int 转换为 std::string

c# - URL 在浏览器中有效,但无法从 Web 客户端或 Web 请求获取响应

c# - Winforms - 调整 CheckedListBox 上垂直滚动条的宽度

python - 如何在 python GUI 应用程序中创建线程?

python - Tkinter:当 OptionMenu 选择更改时更改标签