用mfc编程,在按下一个a按钮后系统开始等待3秒,如果在三秒内按下另外一个b按钮则正常运行,否则弹出提示

,为了完成任务,需要再次按下a,然后同上。已经试过sleep函数,但是开始它的时候,按其他按钮不起作用,还有什么好的方法,比如settimer等,最好有事例,谢谢... ,为了完成任务,需要再次按下a,然后同上。 已经试过sleep函数,但是开始它的时候,按其他按钮不起作用,还有什么好的方法,比如settimer等,最好有事例,谢谢 展开
 我来答
百度网友7860c3e
2010-10-06 · TA获得超过241个赞
知道小有建树答主
回答量:199
采纳率:0%
帮助的人:118万
展开全部
Settimer(1000,3000,NULL);按下按钮a后启动一个id=1000 时间间隔为3000的定时器。让后在Ontimer()消息处理函数里判断b按钮是否按下(可以定义一个变量来标识是否按下过b按钮)
void Onteimer(UINT nIDEvent)
{ if(nIDEvent == 1000)
{
if(m_b按钮变量)//布尔值

//按下了b按钮
m_b按钮变量 = !m_b按钮变量;

else
{
//没有按下b按钮
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
直男救星来了
2010-10-06 · TA获得超过673个赞
知道小有建树答主
回答量:168
采纳率:100%
帮助的人:203万
展开全部
解决思路是这样的:
1、在窗口类中定义一个变量,用来标明是否按下了b按钮。
BOOL m_bFlag;
以及一个定时计数的变量,记录秒数
int m_nCount;
2、在响应b按钮点击消息的函数OnButtonB()中将m_bFlag设为TURE,表示b按钮被按下。
m_bFlag=TRUE;
3、在响应a按钮点击消息的函数OnButtonA()中设置定时器开始计时,步长为1000毫秒(即1秒)
SetTimer(1,1000);
4、在系统默认处理定时器消息的函数afx_msg void OnTimer( UINT nIDEvent )中判断是否时间达到了3秒钟,若是,则再判断是否按下了b按钮
m_nCount++;
if(m_nCount>3)
if(!m_bFlag)
MessageBox('弹出提示!');
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式