Language & API/MFC
다이얼로그 모달리스 생성하기
강한퓨전
2022. 3. 10. 16:36
MFC 다이얼로그 생성 방식은 아래 두가지가 있습니다.
1. 모달(MODAL) 방식
- 열린 대화 상자의 제어권 및 포커스가 다른 대화 상자로는 이동하지 못합니다.
- 닫아야지만 제어권 및 포커스가 이동 합니다.
2. 모달리스(MODALESS) 방식
- 열린 대화 상자 뿐 아니라 다른 대화 상자에게 포커스 및 제어권을 이동할 수 있습니다.
아래는 모달리스 대화 상자를 만들 때 사용했던 조건들입니다.
1. MAIN 다이얼로그 초기화시 다이얼로그 클래스 생성
2. 버튼을 누르면 다이얼로그 CREATE
3. 버튼을 계속 누를시 하나의 다이얼로그만 생성
4. 다이얼로그 위치 중앙
5. MAIN 다이얼로그 CLOSE 시 다이얼로그 삭제
아래 소스 카피를 위해 소스의 일부분으로 만들어 놓았습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
BOOL CSetUpTestDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
//...
m_pSetup_Dlg = new Setup_Dlg();
return TRUE; // 포커스를 컨트롤에 설정하지 않으면 TRUE를 반환합니다.
}
void CSetUpTestDlg::OnClose()
{
if (m_pSetup_Dlg != nullptr) {
delete m_pSetup_Dlg;
}
CDialogEx::OnClose();
}
void CSetUpTestDlg::OnBnClickedBtnSetup()
{
if (m_pSetup_Dlg->GetSafeHwnd() == NULL) //다이얼로그 존재 체크
{
m_pSetup_Dlg->Create(IDD_DL_SETUP, this); //다이얼로그 만들기
}
else
{
m_pSetup_Dlg->SetActiveWindow(); //다이얼로그 활성화
}
m_pSetup_Dlg->CenterWindow(GetDesktopWindow()); //다이얼로그 센터위치
m_pSetup_Dlg->ShowWindow(SW_SHOW); //다이얼로그 보이기
}
|
cs |