다음을 통해 공유


서브클래싱 및 자동 메시지 번역

서브클래싱은 창 프로시저에서 처리할 기회가 있기 전에 애플리케이션이 특정 창에 전송되거나 게시된 메시지를 가로채서 처리할 수 있는 기술입니다. 운영 체제는 창 프로시저를 서브클래싱한 함수의 형식에 따라 메시지를 ANSI(Windows) 코드 페이지 또는 유니코드 양식으로 자동으로 변환합니다.

SetWindowLongA 함수에 대한 다음 호출은 hWnd 매개 변수로 식별된 창과 연결된 현재 창 프로시저를 서브클래스합니다. 또는 애플리케이션에서 SetWindowLongPtrA를 사용할 수 있습니다. 새 창 프로시저 NewWndProc은 Windows 코드 페이지 형식의 텍스트가 있는 메시지를 받습니다.

OldWndProc = (WNDPROC) SetWindowLongA(hWnd,
             GWL_WNDPROC, (LONG)NewWndProc); 

NewWndProc에서 메시지 처리를 완료하면 다음과 같이 CallWindowProc 함수를 사용하여 OldWndProc에 메시지를 전달합니다.

CallWindowProc(OldWndProc, hWnd, uMessage, wParam, lParam);

OLDWndProc이 유니코드 클래스 스타일로 만들어진 경우 메시지는 NewWndProc에서 받은 Windows 코드 페이지 양식에서 유니코드로 변환됩니다.

마찬가지로 SetWindowLongW 또는 SetWindowLongPtrW 함수에 대한 호출은 유니코드 문자 메시지가 필요한 창 프로시저를 사용하여 현재 창 프로시저를 서브클래스합니다. 필요한 경우 CallWindowProc 함수를 처리하는 동안 메시지 번역이 수행됩니다.

서브클래싱에 대한 자세한 내용은 창 프로시저를 참조하세요.

유니코드 및 문자 집합 사용