서브클래싱은 창 프로시저에서 처리할 기회가 있기 전에 애플리케이션이 특정 창에 보내거나 게시한 메시지를 가로채서 처리할 수 있는 기술입니다. 운영 체제는 창 프로시저를 서브클래싱한 함수의 형태에 따라 메시지를 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 함수를 처리하는 동안 메시지 변환이 수행됩니다.
서브클래싱에 대한 자세한 내용은 창 프로시저참조하세요.
관련 항목