U E D R , A S I H C RSS

5인용C++스터디/다이얼로그박스

  • 발표에 꼭 들어가야 할 것들
    • 다이얼로그박스가 무엇인가?
    • 모달 다이얼로그박스와 모달리스 다이얼로그박스의 차이가 무엇인가?
    • 모달 다이얼로그박스는 어떻게 만드나?
    • 모달리스 다이얼로그박스는 어떻게 만드나?
    • 다이얼로그박스에 있는 컨트롤(버튼, 라디오버튼, 체크박스, 리스트박스 등...)은 어떻게 사용하나?

다이얼로그박스란?

말 그대로 대화상자.
흔히 보는 윈도우의 창들중 하나로서,

대화상자(DialogBox)는 최상위 윈도우(top-level window)의 자식 윈도우로서 일반적으로 사용자로부터 정보를 얻기 위해 사용된다. Dialog는 사용자들이 파일을 선택하여 열기 등의 작업을 쉽게 하도록 합니다. 파일 작업을 쉽게하기 위해 제공하는 컴포넌트가 FileDialog클래스이다. Dialog는 Frame윈도우와 비슷한데 그 차이점을 살펴보면, 대화상자는 윈도우에 종속적이기 때문에 그 윈도우가 닫히면 대화상자도 따라서 같이 닫히게 된다는 것이다. 또한 윈도우를 최소화시켜도 대화상자는 사라지게 된다.

-> 만드는 법
1-1 Visual Stdio Microsoft Visual C++ 프로그램을 실행 시킨다
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를
선택을 했다.


모달 다이얼로그박스와 모달리스 다이얼로그박스

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라고 한다.


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2009-05-27 07:09:19
Processing time 36.6871 sec