(Windows)我可以在程序运行时更改或停止程序吗?

spc*_*123 1 c++ winapi interrupt

我现在正在用C++编写一个win32程序。我想在窗口上展示我的运行过程,就像时间在流动一样。

例如,这段代码

int a=0;
for(int i=0;i<10;i++)
{
  a++;//The change in "a" can be seen on the window.
  Sleep(1*1000);
}
Run Code Online (Sandbox Code Playgroud)

但我发现,如果我想展示这个过程,比如点击一个按钮,屏幕上就会出现一个变化的数字,那么程序需要一直运行。此时,我没有办法做任何其他事情,例如单击另一个按钮。

所以我意识到我需要一个可以中断当前进程的操作。但我查了很多资料,发现只有Linux系统的fork()函数才能满足我的需求。但我现在使用的是Windows,那么还有什么其他方法可以实现这一点呢?真诚期待您的回复。

Ayx*_*xan 5

您想使用SetTimer创建一个计时器。然后观察WM_TIMER消息并更新屏幕。这是实现您所描述的目标的标准方法。