주 메시지 루프 작성

MDI 응용 프로그램의 주 메시지 루프는 액셀러레이터 키를 처리 하는 비 MDI 응용 프로그램의 유사 합니다. 차이점은 응용 프로그램 정의 된 액셀러레이터 키에 대 한 검사 또는 메시지를 발송 하기 전에 MDI 메시지 루프 TranslateMDISysAccel 함수를 호출.

다음 예제에서는 일반적인 MDI 응용 프로그램의 메시지 루프를 보여 줍니다.

동안 (GetMessage (amp; msg, (HWND) NULL, 0, 0)) {경우 (!TranslateMDISysAccel (hwndMDIClient, & msg) & &!TranslateAccelerator (hwndFrame, hAccel, & msg))
    {TranslateMessage(&msg); 
        DispatchMessage(&msg); 
    } 
} 
 

TranslateMDISysAccel 함수는 WM_SYSCOMMAND 메시지 WM_KEYDOWN 메시지를 변환 하 고 활성 MDI 자식 창에 보냅니다. 메시지 MDI 액셀러레이터 메시지가 없으면 함수 FALSE를 반환 합니다,이 경우 응용 프로그램 TranslateAccelerator 함수를 사용 하 여 응용 프로그램 정의 된 액셀러레이터 키의 눌렀는지 여부를 확인 하려면에서. 그렇지 않으면 적절 한 창 프로시저에서 메시지를 전달 하는 루프.

 

Index