다음을 통해 공유


SetClassLongPtrA 함수(winuser.h)

지정한 창이 속한 클래스의 추가 클래스 메모리 또는 WNDCLASSEX 구조체의 지정된 오프셋에서 지정된 값을 바꿉니다.

참고 32비트 및 64비트 Windows와 호환되는 코드를 작성하려면 SetClassLongPtr사용합니다. 32비트 Windows용으로 컴파일할 때 SetClassLongPtrSetClassLong 함수에 대한 호출로 정의됩니다.

 

통사론

ULONG_PTR SetClassLongPtrA(
  [in] HWND     hWnd,
  [in] int      nIndex,
  [in] LONG_PTR dwNewLong
);

매개 변수

[in] hWnd

형식: HWND

창 및 간접적으로 창이 속한 클래스에 대한 핸들입니다.

[in] nIndex

형식: int

바꿀 값입니다. 추가 클래스 메모리에 값을 설정하려면 설정할 값의 0부터 시작하는 양수 바이트 오프셋을 지정합니다. 유효한 값은 0부터 추가 클래스 메모리 바이트 수까지의 범위에서 8을 뺀 값입니다. 예를 들어 24바이트 이상의 추가 클래스 메모리를 지정한 경우 값 16은 세 번째 정수에 대한 인덱스입니다. WNDCLASSEX 구조체 이외의 값을 설정하려면 다음 값 중 하나를 지정합니다.

의미
GCL_CBCLSEXTRA
-20
클래스와 연결된 추가 메모리의 크기(바이트)를 설정합니다. 이 값을 설정해도 이미 할당된 추가 바이트 수는 변경되지 않습니다.
GCL_CBWNDEXTRA
-18
클래스의 각 창과 연결된 추가 창 메모리의 크기(바이트)를 설정합니다. 이 값을 설정해도 이미 할당된 추가 바이트 수는 변경되지 않습니다. 이 메모리에 액세스하는 방법에 대한 자세한 내용은 SetWindowLongPtr참조하세요.
GCLP_ HBRBACKGROUND
-10
핸들을 클래스와 연결된 배경 브러시로 바꿉니다.
GCLP_HCURSOR
-12
핸들을 클래스와 연결된 커서로 바꿉니다.
GCLP_HICON
-14
핸들을 클래스와 연결된 아이콘으로 바꿉니다.
GCLP_HICONSM
-34
클래스와 연결된 작은 아이콘에 대한 핸들을 검색합니다.
GCLP_HMODULE
-16
클래스를 등록한 모듈에 대한 핸들을 바꿉니다.
GCLP_MENUNAME
-8
메뉴 이름 문자열에 대한 포인터를 바꿉니다. 문자열은 클래스와 연결된 메뉴 리소스를 식별합니다.
GCL_STYLE
-26
창 클래스 스타일 비트를 바꿉니다.
GCLP_WNDPROC
-24
클래스와 연결된 창 프로시저에 대한 포인터를 바꿉니다.

[in] dwNewLong

형식: LONG_PTR

대체 값입니다.

반환 값

형식: ULONG_PTR

함수가 성공하면 반환 값은 지정된 오프셋의 이전 값입니다. 이전에 설정되지 않은 경우 반환 값은 0입니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 얻으려면 GetLastError호출합니다.

발언

SetClassLongPtr 함수와 GCLP_WNDPROC 인덱스를 사용하여 창 프로시저를 바꾸는 경우 창 프로시저는 WindowProc 콜백 함수 설명에 지정된 지침을 따라야 합니다.

GCLP_WNDPROC 인덱스를 사용하여 SetClassLongPtr 호출하면 이후에 클래스로 만든 모든 창에 영향을 주는 창 클래스의 하위 클래스가 만들어집니다. 애플리케이션은 시스템 클래스를 서브클래스할 수 있지만 다른 프로세스에서 만든 창 클래스를 서브클래스해서는 안 됩니다.

RegisterClassEx 함수와 함께 사용되는 WNDCLASSEX 구조체의 cbClsExtra 멤버에 0이 아닌 값을 지정하여 추가 클래스 메모리를 예약합니다.

SetClassLongPtr 함수를 주의하여 사용합니다. 예를 들어 SetClassLongPtr사용하여 클래스의 배경색을 변경할 수 있지만 이 변경 내용이 클래스에 속한 모든 창을 즉시 다시 그리는 것은 아닙니다.

메모

winuser.h 헤더는 SETClassLongPtr를 UNICODE 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한 규칙을 참조하세요.

요구 사항

요구
지원되는 최소 클라이언트 Windows 2000 Professional [데스크톱 앱만 해당]
지원되는 최소 서버 Windows 2000 Server [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winuser.h(Windows.h 포함)
라이브러리 User32.lib
DLL User32.dll
API 집합 ext-ms-win-ntuser-windowclass-l1-1-2(Windows 10 버전 10.0.10240에서 도입됨)

참고 항목

개념

GetClassLongPtr

참조

RegisterClassEx

SetWindowLongPtr

WNDCLASSEX

창 클래스

WindowProc