关于MFC按键问题,帮帮小弟。

tomcy 2006-07-14 07:57:14
我没有学过VC,所以只会照葫芦画瓢。
但现在要做一个MFC应用程序,其中内容有按一个BUTTON(ID:IDC_START)进入一死循环。再按一次start,退出循环。也可以是其它指定的按钮。
希望各位高手指点一二。最好有代码。在线等。。。

void CRWORKDlg::OnStart() //按下start键进入死循环。
{
while(1){};
}

现希望再按start键退出循环。怎么实现?
...全文
265 14 打赏 收藏 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
tomcy 2006-07-15
  • 打赏
  • 举报
回复
终于解决了.
谢谢各位的帮助!!
再次谢谢!!
Elysium 2006-07-15
  • 打赏
  • 举报
回复
一般的,在代码内陷入了死循环,即使再单击按钮要改变一个状态,使之推出循环也是不好做到的,因为cpu分配不了时间来处理按钮单击时间,现象就是挂起,不管在单任务win16还是多任务文in2下,因为DispatchMessage总是要等到该函数返回后才能返回。函数修改后

void CMy01Dlg::OnButton1()
{
flag = !flag;
MSG message;
while (1)
{
while (::PeekMessage(&message, NULL, 0, 0, PM_REMOVE))
{
::TranslateMessage(&message);
::DispatchMessage(&message);
}
}
}
kugou123 2006-07-14
  • 打赏
  • 举报
回复
设立个标志量,在工作线程里面产生死循环。不要影响了你的界面线程,否则程序无响应。
tomcy 2006-07-14
  • 打赏
  • 举报
回复
void CRWORKDlg::OnStart() //按下start键进入死循环。
{
flag = !flag;
while (flag)
{
};
if( FLASE == flag )
PostQuitMessage( 0 ); //发送消息退出程序
}
不太明白。
用线程 或 是用处理消息 是怎么来写?
Stefine 2006-07-14
  • 打赏
  • 举报
回复
那就再加点啦
void CRWORKDlg::OnStart() //按下start键进入死循环。
{
flag = !flag;
while (flag)
{
};
if( FLASE == flag )
PostQuitMessage( 0 ); //发送消息退出程序
}

xing_xing_xing 2006-07-14
  • 打赏
  • 举报
回复
多线程
tomcy 2006-07-14
  • 打赏
  • 举报
回复
自己顶起,

查了半天也没搞懂怎么写 消息处理

哪位高手帮帮我。。。万分感谢!!
tomcy 2006-07-14
  • 打赏
  • 举报
回复
处理消息处理怎么写?
能不能给段代码。谢谢!!
tomcy 2006-07-14
  • 打赏
  • 举报
回复
void CRWORKDlg::OnStart() //按下start键进入死循环。
{
flag = !flag;
while (flag)
{
};
}
是这样么?怎么处理flag才能让它退出?
我对这个编程一窍不能,能不能说详细点,最还可以依样画瓢。谢谢!!
Elysium 2006-07-14
  • 打赏
  • 举报
回复
然后在循环中处理消息退出
三中土豆 2006-07-14
  • 打赏
  • 举报
回复
楼上正解
Elysium 2006-07-14
  • 打赏
  • 举报
回复
哦,好像不对
直接
{
flag = !flag
while (flag)
{
}
}
Elysium 2006-07-14
  • 打赏
  • 举报
回复
BOOL Flag=false;

btn()
{
Flag = !Flag;
if (Flag)
{
while (1)
{
....
}
}
}
DentistryDoctor 2006-07-14
  • 打赏
  • 举报
回复
你都写成死循环了,没办法。

要么用线程,要么在循环中处理消息。

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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