一个按钮点了开始,怎么让另外一个按钮点停止。

cbzjzsb123 2012-09-16 11:53:44
一个按钮点了,它就执行里面的代码,里面的代码还没执行完,就不能点另外一个按钮,怎么能点击另外一个按钮,让这个按钮里面的代码停止工作呢?
...全文
394 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
qlizhang 2012-09-17
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

我想问一下,就是一个按钮里面的代码还没有执行完时,点另一个按钮,windows能收到消息吗?
[/Quote]
收到,但暂不执行这个事件。
cbzjzsb123 2012-09-17
  • 打赏
  • 举报
回复
我想问一下,就是一个按钮里面的代码还没有执行完时,点另一个按钮,windows能收到消息吗?
Shan_Ai_Ni 2012-09-17
  • 打赏
  • 举报
回复
如果不懂多线程可以利用定时器来实现。
  • 打赏
  • 举报
回复
在开始按钮的响应函数里面让另一个按钮无效GetDlgItem(IDC_BTN_XXX)->EnableWindows(FALUS);再在任务结束的时候加上同样的代码让按钮有效,FALUS改为TRUE,一般界面编程里面你的任务运行的时间长的话界面会卡死,最好用多线程,不另外开线程你另一个按钮是点不了的。
qlizhang 2012-09-17
  • 打赏
  • 举报
回复
可以利用定时器来实现,按钮要执行的内容放入定时器函数中,一个按钮开启定时器,另一按钮停止定时器。
lllxy 2012-09-17
  • 打赏
  • 举报
回复
当点击一个按钮,执行开始的时候,必须启动一个线程,通过在线程的运行过程当中有检测某个变量的功能,当再点击结束按钮的时候,设置这个变量的值,从而起到结束的功能.
傻X 2012-09-16
  • 打赏
  • 举报
回复
除非第一个按钮的代码是多线程的(启动一个线程),并且处理时间比较长,且代码中有设置控制的flag,由按钮二来控制。不然是不可能的。
Eleven 2012-09-16
  • 打赏
  • 举报
回复
开个线程吧,让线程去做事,需要的时候给线程发送消息。这样不至于会造成界面被卡住。
在线程中可以判断某一个条件成不成立来决定是否继续做事情。比如等待某一事件对象是否是signal状态~
miliggate 2012-09-16
  • 打赏
  • 举报
回复
直接用一个map不就可以了,你是类还是什么,
CButton有一个函数是可以暂时屏蔽按钮的
傻X 2012-09-16
  • 打赏
  • 举报
回复
1.程序执行时间够长
2.多线程可以选用CEvent和CMutex来互斥,WaitForSingleObject函数放在第一个按钮
可以让第一按钮函数执行到一半等待第二个按钮的指令,得到指令后继续执行。
cbzjzsb123 2012-09-16
  • 打赏
  • 举报
回复
还不会多线程。弱弱的问一句,按钮里面的代码是按顺序执行的吗?这个按钮里面的代码没有执行完,即使开辟了多线程,点击另外一个按钮怎么有机会执行呢?
hotpos 2012-09-16
  • 打赏
  • 举报
回复
在楼上基础上在加一个flag判断是否点了另外一个按钮.

不过还是开多线程好弄点,也不容易出错.
hdg3707 2012-09-16
  • 打赏
  • 举报
回复
PeekMessage (&msg, NULL, 0, 0, PM_REMOVE))
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
加上这三句就行了,比如这样:
while(继续运行)
{
PeekMessage (&msg, NULL, 0, 0, PM_REMOVE))
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
执行你的任务

}

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧