SetWindowSubclass 함수(commctrl.h)
창 하위 클래스 콜백을 설치하거나 업데이트합니다.
구문
BOOL SetWindowSubclass(
[in] HWND hWnd,
[in] SUBCLASSPROC pfnSubclass,
[in] UINT_PTR uIdSubclass,
[in] DWORD_PTR dwRefData
);
매개 변수
[in] hWnd
형식: HWND
서브클래스되는 창의 핸들입니다.
[in] pfnSubclass
형식: SUBCLASSPROC
창 프로시저에 대한 포인터입니다. 이 포인터와 서브클래스 ID는 이 서브클래스 콜백을 고유하게 식별합니다. 콜백 함수 프로토타입은 SUBCLASSPROC를 참조하세요.
[in] uIdSubclass
형식: UINT_PTR
하위 클래스 ID입니다. 이 ID는 하위 클래스 프로시저와 함께 하위 클래스를 고유하게 식별합니다. 서브클래스를 제거하려면 하위 클래스 프로시저와 이 값을 RemoveWindowSubclass 함수에 전달합니다. 이 값은 uIdSubclass 매개 변수의 하위 클래스 프로시저에 전달됩니다.
[in] dwRefData
형식: DWORD_PTR
데이터를 참조하는 DWORD_PTR. 이 값의 의미는 호출 애플리케이션에 의해 결정됩니다. 이 값은 dwRefData 매개 변수의 하위 클래스 프로시저에 전달됩니다. 다른 dwRefData는 창 핸들, 하위 클래스 프로시저 및 uIdSubclass의 각 조합과 연결됩니다.
반환 값
형식: BOOL
서브클래스 콜백이 성공적으로 설치되었으면 TRUE입니다. 그렇지 않으면 FALSE입니다.
설명
서브클래스 콜백은 콜백 주소와 호출자 정의 서브클래스 ID의 조합으로 식별됩니다. 콜백 주소 및 ID 쌍이 아직 설치되지 않은 경우 이 함수는 하위 클래스를 설치합니다. 쌍이 이미 설치된 경우 이 함수는 참조 데이터만 업데이트합니다.
각 콜백은 메시지를 필터링하기 위해 호출될 때 콜백 함수에 전달되는 단일 DWORD_PTR 참조 데이터를 저장할 수 있습니다. 콜백에 대한 참조 계산이 수행되지 않습니다. SetWindowSubclass 를 반복적으로 호출하여 참조 데이터 요소의 값을 변경할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | commctrl.h |
라이브러리 | Comctl32.lib |
DLL | Comctl32.dll(버전 5.8 이상) |
API 세트 | ext-ms-win-shell-comctl32-window-l1-1-0(Windows 10 버전 10.0.14393에 도입됨) |