我仍然是C ++和WinAPI的新手,我遇到了一个问题。我无法在WinAPI中使用无限的while循环(在这种情况下是真实的),但我可以在控制台应用程序中完成我想要做的事情而不会崩溃。
我正在尝试检测按键,所以我相信我需要这个循环,除非有人可以提供其他方法。
while (true) {
if (GetAsyncKeyState(MIDDLEMOUSEBUTTON)) {
//my code here
}
}
感谢您的任何帮助或建议,谢谢。
答案 0 :(得分:3)
GUI应用程序是事件驱动的。您的循环阻止消息循环处理新消息。这就是为什么您的应用没有响应的原因。您需要一个消息循环,并且需要消息处理程序来处理WM_KEYDOWN
,WM_KEYUP
和/或WM_CHAR
消息以处理按键,WM_(L|M|R)BUTTONDOWN
和/或{{ 1}}用于处理鼠标点击等的消息