Share via


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부터 시작하는 바이트 오프셋을 지정합니다. 유효한 값은 추가 클래스 메모리의 바이트 수에서 8을 뺀 값까지 범위 0에 있습니다. 예를 들어 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을 유니코드 전처리기 상수의 정의에 따라 이 함수의 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