您好、欢迎来到现金彩票网!
当前位置:2019欢乐棋牌 > 中断事件 >

MFC中如何在一个按钮中循环一个事件在点击另一按钮时结束这个事

发布时间:2019-08-04 03:42 来源:未知 编辑:admin

  这样是不行的。。我知道可以用线程来解决,也可以用消息处理来解决。在while(bInLoop)时里面传递一个消息来控制循环结束,关键是具体代码怎么写,初学者不知道要用那个函数和语句来写这个。求懂的给改改,能实现按BUTTON2时上面那个BUTTON1 里的WHILE循环结束就行了。写出来再加100分

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  1、建立一个MFC工程,上面放2个按钮:第一个按钮是启动循环;第二个按钮是结束循环;

  ③在第一个按钮上面定义一个线程函,此函数用于当满足条件实现死循环,不满足条件跳出循环从而关闭线程;

  改成这样看看?不过Button2被点击之前,你的程序很可能无法退出(就是点x退不掉)追问我的BUTTON2 内容不用改么?

  这样的话blnLoop=FALSE的值能传进去么?不用传递消息的函数给他传递值么?blnLoop要定义成全局变量吧。追答binLoop可以定义成全局变量也可以定义成CTestDlg类的成员变量。只要Button1和2里binLoop指的是同一个变量,就可以了。

  前提是你的 一个事件 不能运行太长的时间,比如你循环一次要10秒钟,那么你的窗口还是反应非常慢的。

  窗口会卡的原因是消息没有得到处理,而这么改代码的原理就是每个循环的时候都把之前积压下来的消息都处理了

  展开全部另开一个线程到时可以,不过这个createthread函数(启动线程函数)应该放在BUTTON1里然后你BUTTON1里的循环放在线程函数里,BUTTON2控制bInLoop真假来结束你的线程里的循环。

  展开全部不要再MFC的窗口及空间里使用线程等待,那样会阻止MFC本身的窗口线程的消息分发,请自行创建个线程或者WM_TIMER来做处理。

  这里有个WTL的滚动进度条控件,里面用了WM_TIMER来做线程,持续不断的刷新进度条,当按钮点击停止后,也会停掉滚动条的动画。WTL和MFC是相通的,你可以将里面的关键点,移植到MFC上面。

  这里给出两种方法,一种是使用Timer,然后在OnTimer函数里面做自己的事情。

http://rotorooterpa.com/zhongduanshijian/474.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有