프레임 및 자식 창 만들기

해당 창 클래스를 등록 한 후 MDI 응용 프로그램의 창을 만들 수 있습니다. 첫째, CreateWindow 또는 CreateWindowEx 함수를 사용 하 여 프레임 창을 만듭니다. 만든 후 해당 프레임 창, 응용 프로그램의 클라이언트 창을 만듭니다, 다시 CreateWindow 또는 CreateWindowEx사용 하 여. 응용 프로그램 클라이언트 창 클래스 이름; MDICLIENT 지정 해야 MDICLIENT 시스템에 의해 정의 되는 preregistered 창 클래스입니다. CreateWindow 또는 CreateWindowExlpvParam 매개 변수는 CLIENTCREATESTRUCT 구조체를 가리켜야 합니다. 이 구조는 다음 표에 설명 된 멤버 포함:

회원 설명
hWindowMenu MDI 자식 창을 제어에 사용 되는 메뉴를 처리 합니다. 자식 창이 만들어질 때 응용 프로그램 메뉴의 제목을 메뉴 항목으로 추가 합니다. 사용자 다음 메뉴에서 해당 제목을 클릭 하 여 자식 창을 활성화할 수 있습니다.
idFirstChild 첫 번째 MDI 자식 창의 식별자를 지정합니다. 만든 첫 번째 MDI 자식 창은이 식별자를 할당 됩니다. 추가 창은 증가 창 식별자를 사용 하 여 만들어집니다. 자식 창이 소멸 되 면 시스템 즉시 그들의 범위를 연속 된 상태로 유지 하려면 창 식별자를 재지정.

자식 창 제목을 메뉴에 추가 되 면 시스템 자식 창에 있는 식별자를 할당 합니다. 자식 창의 제목을 클릭 하면이 프레임 창 wParam 매개 변수 식별자가 WM_COMMAND 메시지를 받습니다. 프레임 창 메뉴에서 메뉴 항목의 식별자와 충돌 하지 않는 idFirstChild 멤버에 대 한 값을 지정 해야.

Multipad의 프레임 창 프로시저 WM_CREATE 메시지 처리 하는 동안 MDI 클라이언트 창을 만듭니다. 클라이언트 창을 만드는 방법을 보여 주는 예제.

wM_CRE&ATE 사례: {CLIENTCREATESTRUCT ccs; 
 
        / / 창 메뉴에 대 한 핸들을 검색 하 고 할당 합니다 / / 첫 번째 자식 창 식별자. 
 
        ccs.hWindowMenu = GetSubMenu(GetMenu(hwnd), WINDOWMENU); 
        ccs.idFirstChild = IDM_WINDOWCHILD; 
 
        / / MDI 클라이언트 창을 만듭니다. 
 
        hwndMDIClient = CreateWindow ("MDICLIENT", (LPCTSTR) NULL WS_CHILD (ko) | WS_CLIPCHILDREN | WS_VSCROLL | WS_HSCROLL, 0, 0, 0, 0, hwnd (HMENU) 0xCAC, hInst, 우리 모두의 (LPSTR) amp; ccs); 
 
        ShowWindow (hwndMDIClient, SW_SHOW); 
    } 휴식 
 

자식 창의 제목 메뉴의 맨 아래에 추가 됩니다. 응용 프로그램 메뉴 AppendMenu 함수를 사용 하 여 문자열 추가, 메뉴 (때마다 자식 창을 생성 되거나 소멸) 그려집니다 때 자식 창의 제목이 이러한 문자열을 덮어쓸 수 있습니다. MDI 응용 프로그램의 메뉴에 문자열을 추가 하는 InsertMenu 함수를 사용 하 고 자식 창 제목 이러한 새로운 문자열을 덮어쓰지는 확인 해야.

WS_CLIPCHILDREN 스타일을 사용 하 여 MDI 클라이언트 창을 자식 창 위에 그림에서 창의 방지 하기 위해 만들.

 

Index