无限while循环崩溃WinAPI

时间:2016-03-05 22:01:18

标签: c++ winapi crash infinite

我仍然是C ++和WinAPI的新手,我遇到了一个问题。我无法在WinAPI中使用无限的while循环(在这种情况下是真实的),但我可以在控制台应用程序中完成我想要做的事情而不会崩溃。

我正在尝试检测按键,所以我相信我需要这个循环,除非有人可以提供其他方法。

while (true) {
  if (GetAsyncKeyState(MIDDLEMOUSEBUTTON)) {
    //my code here
  }
}

Not responding

感谢您的任何帮助或建议,谢谢。

1 个答案:

答案 0 :(得分:3)

GUI应用程序是事件驱动的。您的循环阻止消息循环处理新消息。这就是为什么您的应用没有响应的原因。您需要一个消息循环,并且需要消息处理程序来处理WM_KEYDOWNWM_KEYUP和/或WM_CHAR消息以处理按键,WM_(L|M|R)BUTTONDOWN和/或{{ 1}}用于处理鼠标点击等的消息