MFC 消息泵
洋航 2017-09-15 11:18:52 void CDMCd2Dlg::OnZero()
{
// TODO: Add your control notification handler code here
UpdateData(true);//刷新参数
dmc_set_pulse_outmode(m_Card,m_nXaixs,0); //设置脉冲输出模式
dmc_set_profile(m_Card,m_nXaixs,m_nSpeedmin,m_nSpeedmax,m_nAcc,m_nDec,500);//设置速度曲线
dmc_set_homemode(m_Card,m_nXaixs,m_nPositive,m_nLowspeed,m_nHome,1);//设置回零方式
dmc_home_move(m_Card,m_nXaixs);//回零动作
while (dmc_check_done(m_Card,m_nXaixs)==0) //判断当前轴状态需要很长时间
{
AfxGetApp()->PumpMessage();
GetDlgItem(IDC_BUTTON1)->EnableWindow(false);
}
GetDlgItem(IDC_BUTTON1)->EnableWindow(true);
UpdateData(false);
}
我对这一句AfxGetApp()->PumpMessage();理解是,当进入while以后,为了防止阻塞了当前线程,无法响应其他操作。加AfxGetApp()->PumpMessage()处理消息, ;我不知道是不是这样去理解,网上搜素了关于消息泵资料,感觉我理解没有错, 问我公司高手,说这个函数没有用,说这个函数是用来截取消息的,我感觉不对,又问了个人,他告诉我这个函数功能和线程挂起一样sleep, 感觉都在敷衍我,特此请教各位大神,