소연의_개발일지
article thumbnail

 

 

다이얼로그 창 항상 앞으로 띄우기

 

다이얼로그 속성에서

 

"System Modal" 를 "True"

"Topmost"를 "True" 로 설정한다.

 

 

 

 

 

주기적으로 창 앞으로 띄우기

작업자들이 다른 창 띄우고 사용하다가 자리를 뜨면.. 현장에서 사용하는 메인화면을 가리기 때문에 필요했던 기능이다.

다른 방법도 있겠지만 난 타이머를 사용해서 구현했다.

 

1. 헤더에 타이머 타이머에 쓸 define정의

#define  TIMER_DIALOG_ON_TOP		20241105

 

2. OninitDialog에 타이머 선언(필요시 여기서 들어가는 5 단위를 에딧박스로 만들면 된다)

SetTimer(TIMER_DIALOG_ON_TOP, 5 * 1000 * 60, nullptr); // 5분에 한번씩 주기적으로 타이머 실행

1초는 1000

1분은 1000 * 60

1시간은 1000 * 60 * 60

 

3. OnTimer에 코드 추가

해당 다이얼로그에 포커스를 두는 방법이다.

	// 다이얼로그에 포커스 두기
	if (nIDEvent == TIMER_DIALOG_ON_TOP) {
		SetForegroundWindow();
	}

 

4. 필요시 KillTimer 설정

KillTimer(TIMER_DIALOG_ON_TOP); // 타이머 해제

 

 

 

 

 

 

 

 

profile

소연의_개발일지

@ssoyxon

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!