如何保持循环直到函数返回

How to keep looping till a function returns?

本文关键字:函数 返回 何保持 循环      更新时间:2023-10-16

我使用的是一个C++图形库,它具有函数void WaitForMouseDown()void WaitForMouseUp()。WaitForMouseDown函数等待鼠标按钮按下,然后返回。WaitForMouseUp等待按钮释放。库bool isMouseDown()中还有另一个函数,如果鼠标按钮当前处于按下状态,则返回true

现在,当用户第一次点击时,我必须开始在循环中做一些事情,并保持循环直到用户第二次按下鼠标。

我尝试过以下方法,但由于某种原因,程序在第二次点击后崩溃。有什么想法吗,我做错了什么?

int main(){
   WaitForMouseUp();
   while(!isMouseDown()){
      //do something
   }
   return 0;
}

如果//do something不包括轮询鼠标或对窗口系统事件进行操作(即不调用库),那么这里有一个明显的无限循环:isMouseDown将始终返回true,因为将其设置为false的事件会在事件队列中休眠。

我认为应该是

int main()
{
  WaitForMouseUp();
  bool done = false;
  while(!done) {
  //do something
  done = isMouseDown();
  }