LabWindows/CVI 에서 일정 시간 이후 자동으로 종료되는(Autoclose) 팝업 윈도우 코드
/**
@brief Display dialog with wait for 'nWaitTimeMS' (Millisecond unit)
@brief 쓰레드에서 사용 불가능하다. 반드시 메인 GUI 상태에서 호출해야 하며, 스레드에서 사용한 경우 다른 방법을 사용하여야 한다.
@param
nWaitTimeMS : 대기 시간
szMessage : 출력 메세지
*/
int ShowPleaseWaitDialog(unsigned int nWaitTimeMS, char * szMessage)
{
SetPanelPos (panelHandle_WAIT, VAL_AUTO_CENTER, VAL_AUTO_CENTER);
// Modal
InstallPopup(panelHandle_WAIT);
unsigned int dwStartTick = GetTickCount();
for(;;)
{
static int nState = 1;
if ( abs(GetTickCount() - dwStartTick) > nWaitTimeMS)
{
// 메시지 에디트 박스를 초기화 하여,차후에 사용할때 이전 문자가 남아있지 않도록 한다.
SetCtrlVal(panelHandle_WAIT,PANEL_WAIT_MSG,"");
// 남은 시간 초, 에디트 박스를 초기화하여, 차후에 사용할때 이전 문자가 남아있지 않도록 한다.
SetCtrlVal(panelHandle_WAIT,PANEL_WAIT_LEFT_TIME_SEC,"");
ProcessDrawEvents();
ProcessSystemEvents();
break;
}
if ( szMessage != NULL)
SetCtrlVal(panelHandle_WAIT,PANEL_WAIT_MSG,szMessage);
ProcessDrawEvents();
ProcessSystemEvents();
nState = nState ? 0 : 1;
}
// Modal
RemovePopup(0);
return 0;
}
Post Views: 14