各位高手进来帮帮忙,如何在向端口循环传输数据时,使之停下?

zhonghuashen 2004-05-08 10:33:26
最近,做了一个小程序,是在MFC环境下向一块A/D转换板循环的传输数据,我是用一个while来循环的。现在的问题是我如何才能在循环过程中按ESC键使它从循环中跳出?
(最好用消息方式回答)
谢谢。
...全文
75 13 点赞 打赏 收藏 举报
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ymbymb 2004-05-11
这就是你传输数据的while循环啊,只是加了一个条件而已!
  • 打赏
  • 举报
回复
zhonghuashen 2004-05-11
下面一段程序放哪啊?
m_bCancel = FALSE;
while(!m_bCancel)
{
....
DoEvents();
}
  • 打赏
  • 举报
回复
zhonghuashen 2004-05-11
各位高手请继续看看。急啊。
  • 打赏
  • 举报
回复
madhappy 2004-05-09
2 ESC按键默认的响应函数是OnCancel():
-----------------------------------------------------------------------
这个函数响应的就是ESC的默认消息(取消)。这样就不用另外写ESC按键处理函数了。还有麻烦点的办法,写一个hook,截获ESC,不过没这个必要了,我认为。
  • 打赏
  • 举报
回复
zhonghuashen 2004-05-09
首先要感谢ymbymb(毛病大哥),我还有一个地方不懂,如下
void CMyDlg::OnCancel()
{
m_bCancel = TRUE;
}
这段代码是不是自己做的对话框?
还有msg 是从哪得到的?
  • 打赏
  • 举报
回复
zhonghuashen 2004-05-09
那就是说 ymbymb(毛病大哥) 是用一个对话框来实现的?

然后Oncancel()是ESC的默认响应函数

是这样吧。
接下来就是那个msg从哪得到的?

  • 打赏
  • 举报
回复
jEditor 2004-05-08
你的操作必须在一个单独的线程里面执行。要不时不能响应的。
设立条件
BOOL bBreak = FALSE;



... CopyThread(...)
{
while(bBreak)
{
cpoy.....
}
}
  • 打赏
  • 举报
回复
madhappy 2004-05-08
ymbymb(毛病大哥)的办法也很好,适用于非暴力运算的情况。
  • 打赏
  • 举报
回复
madhappy 2004-05-08
1 生成一个线程,在线程中执行循环。
2 ESC按键默认的响应函数是OnCancel.你重载这个函数,并把一个变量,比如:
IsContiune=FALSE;

这样在你的线程函数里面检查这个数。
while(1)
{
.....
if(IsContiune==FALSE)
retuen; //or AfxEndThread();
}

  • 打赏
  • 举报
回复
ymbymb 2004-05-08
很简单,在循环中如下调用
m_bCancel = FALSE;
while(!m_bCancel)
{
....
DoEvents();
}

void CMyDlg::OnCancel()
{
m_bCancel = TRUE;
}

void DoEvents()
{
MSG msg;
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return;
}
  • 打赏
  • 举报
回复
PiggyXP 2004-05-08
在While循环中添加一个判断 如

if(bExit) break;
然后在 KeyDown 里面判断按下的键,如果是 esc就把 bExit设置为True

如果楼主的while循环是个死循环的话最好是放到别的线程去执行,或者在while循环中添上
sleep(100)之类的语句
  • 打赏
  • 举报
回复
zhonghuashen 2004-05-08
不会的,up 一下,谢谢。
  • 打赏
  • 举报
回复
madhappy 2004-05-08
jEditor(jEditor) ( )
你的操作必须在一个单独的线程里面执行。要不时不能响应的。
--------------------------------------------------------

???????何以见得?我自己一直都是这个办法阿
  • 打赏
  • 举报
回复
相关推荐
发帖
VC/MFC
加入

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2004-05-08 10:33
社区公告

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