LabWindows/CVI 에서 일정 시간 이후 자동으로 종료되는(Autoclose) 팝업 윈도우 코드 [메인GUI]

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;
}