- 발표에 꼭 들어가야 할 것들
- 다이얼로그박스가 무엇인가?
- 모달 다이얼로그박스와 모달리스 다이얼로그박스의 차이가 무엇인가?
- 모달 다이얼로그박스는 어떻게 만드나?
- 모달리스 다이얼로그박스는 어떻게 만드나?
- 다이얼로그박스에 있는 컨트롤(버튼, 라디오버튼, 체크박스, 리스트박스 등...)은 어떻게 사용하나?
- 다이얼로그박스가 무엇인가?
다이얼로그박스란? ¶
말 그대로 대화상자.
흔히 보는 윈도우의 창들중 하나로서,
흔히 보는 윈도우의 창들중 하나로서,
대화상자(DialogBox)는 최상위 윈도우(top-level window)의 자식 윈도우로서 일반적으로 사용자로부터 정보를 얻기 위해 사용된다. Dialog는 사용자들이 파일을 선택하여 열기 등의 작업을 쉽게 하도록 합니다. 파일 작업을 쉽게하기 위해 제공하는 컴포넌트가 FileDialog클래스이다. Dialog는 Frame윈도우와 비슷한데 그 차이점을 살펴보면, 대화상자는 윈도우에 종속적이기 때문에 그 윈도우가 닫히면 대화상자도 따라서 같이 닫히게 된다는 것이다. 또한 윈도우를 최소화시켜도 대화상자는 사라지게 된다.
-> 만드는 법
1-1 Visual Stdio Microsoft Visual C++ 프로그램을 실행 시킨다
1-2 메뉴에 있는 File 에서 New를 선택을 하면 대화상자가 나온다.
1-3 대화상자에서 MFC AppWizardexe를 선택을 하고, Location: 에 사용자가 생성시키고 싶은
1-2 메뉴에 있는 File 에서 New를 선택을 하면 대화상자가 나온다.
1-3 대화상자에서 MFC AppWizardexe를 선택을 하고, Location: 에 사용자가 생성시키고 싶은
곳에 경로를 선택하고, Project name: 에 프로젝트명을 적고 OK버튼을 누른다.
1-4 What type of application would you like to create?Single document Multiple documents
Dialog based
이 부분에서 사용자가 선택하고 싶은 것을 선택을 한다. 이 Test프로그램은 Dialog based를
선택을 했다.
Dialog based
이 부분에서 사용자가 선택하고 싶은 것을 선택을 한다. 이 Test프로그램은 Dialog based를
선택을 했다.
모달 다이얼로그박스와 모달리스 다이얼로그박스 ¶
Modal Versus Modalless Dialog Boxes
대화상자에는 modal과 modaless 두가지 형태의 대화상자가 있다.
대부분의 대화상자는 modal이다. modal 대화상자는 부모 프로그램이 계속 실행되기 위해서 사용자의 응답을 기다린다. 이 말은 modal 대화상자는 사용자의 입력 확인 없이 부모 프로그램의 어떤 부분도 동작시킬 수 없다. modaless 대화상자는 부모 프로그램의 실행을 막지 않는다. 이것은 다른 부분의 프로그램의 실행을 대화장자가 막지 않는다는 것이다. 좀더 쉽게 풀이 ¶
모든 대화상자는 modal이거나 modeless형식이다. modal대화상자는 대화상자가 활성화 된 후 모든 작업은 이 대화상자에서만 이루어진다는 것이다. 즉, 대화상자를 닫을 때까지는 다른 작업은 할 수 없게 한다. 반대로 modeless대화상자는 활성화 된 후에도 또 다른 윈도우로 넘어가 작업을 할 수 있다. 대화상자는 기본 default로 modeless이다.
modal dialog의 예를 들면 프로그램에서 파일을 저장할 때 화면에 뜨는 Dialog를 들 수 있다.
즉 modal dialog는 그 dialog가 닫혀지기 전에는 부모 윈도우로 마우스를 이용한 focus이동을 할 수 없다. 따라서, dialog를 닫지 않는 이상 main window프로그램을 이용할 수 없다.
modalless dialog의 예는 글 워드 프로세서의 찾기 창을 들 수 있다. 찾기창을 띄운 후 창을 닫지 않로서도 문서편집 작업을 계속해서 할 수 있다. 이러한 속성을 modalless라고 한다.