退出winapi中的while循环
我的问题是这个。我有一个复选框,当选中该复选框时,将启动while循环。在while循环中有createprocess函数。当复选框被标记为选中时,函数会一次又一次地重复该复选框。问题是,当循环运行时,我不能再次按下复选框来更改其值并停止进程。我认为这里需要两个并行进程同时工作,但我不确定。我的问题是: *循环运行时是否有方法访问我的控件? *或者我应该用别的东西来代替while进程退出winapi中的while循环,winapi,Winapi,我的问题是这个。我有一个复选框,当选中该复选框时,将启动while循环。在while循环中有createprocess函数。当复选框被标记为选中时,函数会一次又一次地重复该复选框。问题是,当循环运行时,我不能再次按下复选框来更改其值并停止进程。我认为这里需要两个并行进程同时工作,但我不确定。我的问题是: *循环运行时是否有方法访问我的控件? *或者我应该用别的东西来代替while进程 建议或某种示例将不胜感激。问题在于,您在拥有复选框的同一线程中运行循环,并且该循环阻止线程处理新消息。这就是为什
建议或某种示例将不胜感激。问题在于,您在拥有复选框的同一线程中运行循环,并且该循环阻止线程处理新消息。这就是为什么您不能取消选中复选框(或对UI执行任何其他操作) 您需要:
CreateProcess()
成功后调用MsgWaitForMultipleObjects()
,直到生成的进程退出。在等待时,只要MsgWaitForMultipleObjects()
告诉您新消息正在等待,您就可以启动消息队列并分派检索到的任何消息。这是最不理想的选择,但它需要对现有代码进行最少的更改请提供一个最小的、完整的、可验证的示例,以便我们能够帮助您正确地解决您的问题:您不能在窗口过程中执行任何循环。您需要基于事件的代码。所以不要循环-这是错误的。当复选框被选中/取消选中时-您得到了关于此的通知-基于此通知和执行某些任务任务任务不基于代码,因此代码在这里并不重要。我只是在寻找选项或建议,@RbMm给了我一些。任何循环或在窗口内等待过程都是主要错误。任何信息都必须快速处理并返回控制。您需要。谢谢@Remy Lebeau。通过创建线程,我已经实现了我想要的功能