肯定是有原因的因为之前我直接用VC给提供的那个对话框做,for(int i=0;i<3500;i++)之类的循环都不会卡死,点击什么的也没出过问题啊。

解决方案 »

  1.   

    一个循环需要点击一下对话框才能继续,应该添加哪个语句?
    ---------------------------------------------------------------------------------------------用个HEVENT 和WaitForSingleObject函数来控制HEVENT hEvent = CreateEvent(NULL,TRUE,FALSE,NULL);//手动重置且初始状态为无信号
    在你的循环里面的开头处
    WaitForSingleObject(hEvent,INFINITE); //由于hEvent初始状态为无信号,所有WaitForSingleObject一直等待,不会返回,相当于卡在这里单击按钮的时候,手动设置hEvent为有信号状态:SetEvent(hEvent); //这个时候WaitForSingleObject就返回了,开始执行它的下一句大体就是这个逻辑
      

  2.   

    看了啊,书上关于线程的我都看不懂.WINdows的编程视频也没看几集,总感觉里面画图的,插件什么的我用不到啊
      

  3.   


    我开了一个线程,把循环放进去了,
    不做鼠标点击的动作就能一直循环运行下去我刚刚在程序里加了这么一句
    SetWindowPos(&wndTopMost,0,0,1920,1080,SWP_SHOWWINDOW);//这是标准位置
    然后就可以不断的运行了,感觉就是缺的这句话啊我不知道点击之后触发了什么,导致的对话框不在最前面了
      

  4.   


    我开了一个线程,把循环放进去了,
    不做鼠标点击的动作就能一直循环运行下去我刚刚在程序里加了这么一句
    SetWindowPos(&wndTopMost,0,0,1920,1080,SWP_SHOWWINDOW);//这是标准位置
    然后就可以不断的运行了,感觉就是缺的这句话啊我不知道点击之后触发了什么,导致的对话框不在最前面了
    你在按下鼠标的地方设个断点,然后更一下,看看按了之后代码是怎么走的
      

  5.   

    MFC的界面是单线程的, 开多少对话框也是单线程, 定时器也是这个线程的.
    你需要AfxBeginThread()