主题:新手求助,关于父窗口自动响应问题
我以前是做单片机程序的,最近想自学一下Vc++.
假设单片机里的主函数有一个while(1){}
其他功能通过中断函数来完成,
移植到Vc++,
父窗口里假设有若干个按键,每个按键的程序,是不是相当于单片机里的中断程序,点某个按键,就执行这个按键里的程序。
可是父窗口里的怎样实现while(1)的主函数功能呢?
用多线程可以解决,不过现在我还没学到那里,想单线程是否能解决它。
想在父窗口里做一个一直检测,不得其法。
下面是父窗口的程序
BOOL CJZTESTView::OnCommand(WPARAM wParam, LPARAM lParam)
{
WORD nCode=HIWORD(wParam);
WORD nID=LOWORD(wParam);
if((nID==IDC_BUTTON_Jump)&&(nCode==BN_CLICKED))MessageBox("按下了某键");
show_RunTime();
OnButtonJump();
return CRecordView::OnCommand(wParam, lParam);
}
void CJZTESTView::show_RunTime()
{
unsigned char showHour,showMin;
DWORD dwmin,dwTime;
CString strShowTime;
dwNowTime=GetTickCount();
dwmin=dwNowTime-dwFirstTime;
dwmin=dwmin/1000;
dwTime=dwmin % 60;
showSec=(unsigned char)dwTime;
dwmin=dwmin/60;
dwTime=dwmin%60;
showMin=(unsigned char)dwTime;
dwTime=dwmin/60;
showHour=(unsigned char)dwTime;
strShowTime.Format("%d:%d:%d",showHour,showMin,showSec);
m_strRunTime=strShowTime;
}
void CJZTESTView::OnButtonJump()
{
}
父窗口OnCommand函数里,调用OnButtonJump,不能实现while(1)的功能。
若OnButtonJump函数里有MessageBox()的可执行函数,那么执行完OnButtonJump后,能回到父窗口,再次调用OnButtonJump,实现里类似while(1)功能。如果OnButtonJump函数里没有MessageBox()的语句,执行完OnButtonJump后,父窗口得不到响应。
我的本意是:程序空闲时,一直检测当前时间,满足某个条件,就执行某段程序。这个检测时间程序放在哪里好呢?也就是说,不影响父窗口里的其他子按钮功能,又能一直自动检测时间。
请教各位大侠~多谢!
假设单片机里的主函数有一个while(1){}
其他功能通过中断函数来完成,
移植到Vc++,
父窗口里假设有若干个按键,每个按键的程序,是不是相当于单片机里的中断程序,点某个按键,就执行这个按键里的程序。
可是父窗口里的怎样实现while(1)的主函数功能呢?
用多线程可以解决,不过现在我还没学到那里,想单线程是否能解决它。
想在父窗口里做一个一直检测,不得其法。
下面是父窗口的程序
BOOL CJZTESTView::OnCommand(WPARAM wParam, LPARAM lParam)
{
WORD nCode=HIWORD(wParam);
WORD nID=LOWORD(wParam);
if((nID==IDC_BUTTON_Jump)&&(nCode==BN_CLICKED))MessageBox("按下了某键");
show_RunTime();
OnButtonJump();
return CRecordView::OnCommand(wParam, lParam);
}
void CJZTESTView::show_RunTime()
{
unsigned char showHour,showMin;
DWORD dwmin,dwTime;
CString strShowTime;
dwNowTime=GetTickCount();
dwmin=dwNowTime-dwFirstTime;
dwmin=dwmin/1000;
dwTime=dwmin % 60;
showSec=(unsigned char)dwTime;
dwmin=dwmin/60;
dwTime=dwmin%60;
showMin=(unsigned char)dwTime;
dwTime=dwmin/60;
showHour=(unsigned char)dwTime;
strShowTime.Format("%d:%d:%d",showHour,showMin,showSec);
m_strRunTime=strShowTime;
}
void CJZTESTView::OnButtonJump()
{
}
父窗口OnCommand函数里,调用OnButtonJump,不能实现while(1)的功能。
若OnButtonJump函数里有MessageBox()的可执行函数,那么执行完OnButtonJump后,能回到父窗口,再次调用OnButtonJump,实现里类似while(1)功能。如果OnButtonJump函数里没有MessageBox()的语句,执行完OnButtonJump后,父窗口得不到响应。
我的本意是:程序空闲时,一直检测当前时间,满足某个条件,就执行某段程序。这个检测时间程序放在哪里好呢?也就是说,不影响父窗口里的其他子按钮功能,又能一直自动检测时间。
请教各位大侠~多谢!