오늘은 C++에서 모달(Modal), 모달리스(Modaless) 대해 설명하고자 합니다.
모달 은 잘 아시겠지만 DoModal() 함수를 이용하는 것이고, 모달리스 는 create을 통해 생성 후 필요할 때 사용하는 것입니다.
모달 은 DoModal() 만 호출하면 사용할 수 있기 때문에 생략을 하고요, 모달리스 에 대해 생성, 파괴 에 대해 설명드리고자 합니다,
* 소스코드 (Header)
#include "AaaWnd.h"
CAaaWnd *mp_aaa_wnd;
* 소스코드 (CPP)
// 생성
mp_aaa_wnd = NULL;
mp_aaa_wnd = new CAaaWnd();
if(mp_aaa_wnd){
mp_aaa_wnd->Create(IDD_WINDOW_DLG, this);
mp_aaa_wnd->MoveWindow(CRect(0,0,500,500), TRUE);
mp_aaa_wnd->ShowWindow(SW_HIDE);
}
// 파괴
if(mp_aaa_wnd&& ::IsWindow(mp_aaa_wnd->m_hWnd)){
mp_aaa_wnd->DestroyWindow();
delete mp_aaa_wnd; mp_aaa_wnd= NULL;
}
// 필요한 곳에서 띄운다.
mp_aaa_wnd->ShowWindow(SW_NORMAL); // 보이게 한다.
위 소스에서 보면 생성자 또는 initdialog 에서 생성하고 destory 에서 파괴를 하면 됩니다.
필요하곳에서 ShowWindow(SW_NORMAL) 로 보이게 하면 모달리스는 완성이 됩니다.
보이게 하기 전에 필요한 인자를 던져놓아도 되고, 화면크기 위치를 MoveWIndow 나 SetWindowPos 로 위치를 잡고 보이게 해도 됩니다.
단 저 창은 리소스에 dlg 가 있어야 가능합니다, 위 예로는 IDD_WINDOW_DLG 란 리소스가 있어야 합니다.
#c++#Create#IDD#modal#Modaless#모달리스
'프로그램 > C++' 카테고리의 다른 글
Http Request 로 파일 다운로드 하기 (0) | 2021.01.14 |
---|---|
현재 실행중인 폴더 위치 (0) | 2021.01.13 |
클래스기반의 쓰레드 사용하기 (0) | 2021.01.13 |
vc++에서 간단히 사용헐 수 있는 html 파싱 dll (0) | 2021.01.11 |
[MFC] 유니코드 멀티바이트 UTF-8 문자열 인코딩 변환 모음 (0) | 2021.01.10 |