다이얼로그 창 항상 앞으로 띄우기
다이얼로그 속성에서
"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); // 타이머 해제
'개발공부 > C++' 카테고리의 다른 글
[C++ MFC] CTime 클래스 시간 형식 예시 (0) | 2024.11.12 |
---|---|
[Visual Studio c++] region 및 endregion / pragma 코드블럭 지정하기 (0) | 2024.09.27 |
[C++ MFC] DeleteFile로 파일 삭제, Deletefile로 삭제 안 될때 오류코드 (0) | 2024.09.10 |
[C++ MFC] 창 최소화/최대화/작업표시줄로 내리기 (0) | 2024.08.05 |
[C++] csv 파일 쓰기 (0) | 2024.07.22 |