2013-11-04 5 views
0

현재 내 리소스에는 두 개의 대화 상자 템플릿이 있습니다.MFC를 사용하여 두 개의 대화 상자를 하나의 결합 된 대화 상자로 만드는 방법은 무엇입니까?

왼쪽 템플리트의 대화 상자에 오른쪽 템플리트의 내용을 동적으로 추가하려고합니다. 어떻게하면 좋을까요?

a busy cat

출력은, 다음과 같이 a busy cat

을 또한, 나는 ++ MFC의 C를 사용하고 있습니다. 나는 이것에 아주 새로운이고 나는 어떤 도움을 진짜로 평가할 것입니다!

MainDialogBox *mainDlg = new MainDialogBox(); 
subDialogBox *subDlg = new subDialogBox(mainDlg); 
+0

나는 이것이 도움이되지 않는다는 것을 알고 있지만 MFC를 사용해야합니까? – Raxvan

+0

슬프게도, 그래, 나는 .. – CodeDoctorJL

답변

2

변경 자식 대화 상자 템플릿의 제목 표시 줄 및 테두리 스타일을 제거하여 : 여기

는 내가하려고 만 주 대화 상자를 표시 할 것입니다. 그러면 부모 대화 상자의 일부처럼 보입니다.

그런 다음 상위 대화 상자 인 모덜 창이있는 모덜리스 대화 상자로 하위 대화 상자를 만듭니다. (CDialog :: Create를 사용하면 모덜리스 대화 상자를 만들 수 있습니다.) 이미 두 번째 대화 상자가 표시되지 않으면 '보이기'스타일을 설정하지 않은 것입니다.

부모 대화 상자를 만들 때 WS_EX_CONTROLPARENT 스타일을 지정하십시오. 이것은 부모와 자식 간의 키보드 탐색에 도움이됩니다.

마지막으로 상위 대화 상자에서 원하는 위치에 하위 대화 상자를 배치해야합니다. 부모는 x, y 점 또는 사각형을 대화 상자 생성자로 전달할 수 있습니다. 그런 다음 자식 (OnInitDiialog에서) SetWindowPos를 호출하여 자신을 위치시킬 수 있습니다.

+0

omgomg 고마워! – CodeDoctorJL

+1

중첩 된 자식 대화 상자를 배치하는 더 쉬운 방법이 있습니다. 부모 대화 상자에서 자식을 표시 할 위치에 정적 "숨겨진"텍스트 상자를 만듭니다. IDC_STATIC이 아닌 자원 이름을 지정하십시오. 그런 다음 "숨겨진"정적 상자의 좌표를 가져 와서 자식 대화 상자의 위치를 ​​지정할 수 있습니다. – rrirower

관련 문제