SetWindowLong

SetWindowLong 함수는 지정한 창 특성을 변경합니다. 함수를 또한 설정 32-비트 (long) 값을 지정된 된 오프셋에서 창의 별도 창 메모리에.

롱 SetWindowLong ( HWND  hWnd, / / 창 처리intnIndex, / / 설정 하는 값의 오프셋dwNewLong / / 새 값);
 

매개 변수

hWnd
창 고, 간접적으로 창이 속한 클래스에 대 한 핸들.
nIndex
설정 값을 0부터 시작 오프셋을 지정 합니다. 유효한 값의 범위는 0 4; 마이너스 여분의 창 메모리의 바이트 수를 통해 예를 들어, 12 개 이상의 바이트의 추가 메모리를 지정 하는 경우 값이 8 세 번째 32 비트 정수 인덱스 될 것 이다. 다른 값을 설정 하려면 다음 값 중 하나를 지정합니다:
액션
GWL_EXSTYLE 새로운 확장 창 스타일 설정.
GWL_STYLE 새로운 창 스타일 설정.
GWL_WNDPROC 창 프로시저에 대 한 새 주소 설정.
GWL_HINSTANCE 새 응용 프로그램 인스턴스 핸들을 설정.
GWL_ID 윈도우의 새로운 식별자 설정.
GWL_USERDATA 창에 연결 된 32 비트 값을 설정 합니다. 각 창의 창을 만든 응용 프로그램에서 사용 하기 위한 해당 32 비트 값이.

HWnd 매개 변수 대화 상자를 식별 하는 경우 다음 값 사용할 수 있습니다.:
액션
DWL_DLGPROC 대화 상자 프로시저의 새 주소 설정.
DWL_MSGRESULT 대화 상자 프로시저에서 처리 하는 메시지의 반환 값을 설정.
DWL_USER 개인 핸들 또는 포인터와 같은 응용 프로그램에는 새 추가 정보 설정.

dwNewLong
대체 값을 지정합니다.

반환 값

함수가 성공 하면 반환 값은 이전 값이 지정된 된 32 비트 정수.

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

이전 값이 지정된 된 32 비트 정수 0을 경우 함수가 성공 하면 반환 값은 0, 하지만 함수 마지막 오류 정보를 지우지 않습니다. 이것은 성공 또는 실패를 결정 하는 것이 어려워집니다. 이 처리 하기 위해 호출 하 여 마지막 오류 정보를 지울 해야 SetLastError(0) SetWindowLong를 호출 하기 전에. 반환 값이 0과 0이 아닌 GetLastError 결과가 함수에 오류가 표시 됩니다 다음.

주의

HWnd 매개 변수에 의해 지정 된 창을 호출 하는 스레드와 같은 프로세스에 속하지 않는 SetWindowLong 함수 실패.

그래서 SetWindowLong 사용 하 여 변경 내용이 적용 되지 것입니다 SetWindowPos 함수를 호출할 때까지 특정 창 데이터 캐시.

창 프로시저 WindowProc 콜백 함수 설명에 지정 된 가이드라인을 준수 해야 합니다 GWL_WNDPROC 인덱스 함께 SetWindowLong 를 사용 하 여 창 프로시저를 대체 하는 경우.

경우에서는 SetWindowLong DWL_MSGRESULT 인덱스와 대화 프로시저에 의해 처리 되는 메시지에 대 한 반환 값을 설정 하면 TRUE 반환 해야 직접 나중. 그렇지 않으면, 창 메시지를 받고 대화 프로시저에서 결과 어떤 함수를 호출 하는 경우 중첩 된 창 메시지 반환 값을 DWL_MSGRESULT를 사용 하 여 설정한 덮어쓸 수 있습니다.

GWL_WNDPROC 인덱스 SetWindowLong 호출 창을 만드는 데 사용 하는 window 클래스의 하위 클래스를 만듭니다. 응용 프로그램 하위 클래스는 시스템 클래스를 수 있지만 없는 하위 창 클래스를 사용 하는 다른 프로세스에 의해 생성 한다. SetWindowLong 함수는 이전 하는 대신 새 창 프로시저를 호출 하 여 시스템이 특정 창 클래스와 연결 된 창 프로시저를 변경 하 여 창 하위 클래스를 만듭니다. 응용 프로그램 CallWindowProc를 호출 하 여 이전 창 프로시저에 새 창 프로시저에 의해 처리 되지 메시지를 전달 해야 합니다. 이 응용 프로그램을 창 프로시저의 체인을 만들 수 있습니다.

RegisterClassEx 함수를 함께 사용 하는 WNDCLASSEX 구조체의 cbWndExtra 멤버에 0이 아닌 값을 지정 하 여 여분의 창 메모리 예약.

자식 창의 부모 변경 GWL_HWNDPARENT 인덱스와 SetWindowLong 를 호출 하지 합니다. SetParent 함수를 대신 사용.

Windows CE: NIndex 매개 변수 4 바이트의 배수 여야 합니다.

정렬 되지 않은 액세스는 지원 되지 않습니다.

다음 nIndex 매개 변수 값은 지원 되지 않습니다.:

GWL_HINSTANCE

GWL_HWNDPARENT

GWL_USERDATA

Windows CE 버전 2.0 이상 nIndex 매개 변수에서 DWL_DLGPROC 값을 지원 하지만 Windows CE 1.0 하지 않습니다.

QuickInfo

nbsp;?Windows &NT: 버전 3.1 이상이 필요 합니다.
Windows:Windows 95 이상이 필요합니다.
Windows CE:버전 1.0 이상이 필요합니다.
헤더:Winuser.h에서 선언합니다.
가져오기 라이브러리:User32.lib를 사용 합니다.
유니코드:Windows NT에서 유니코드와 ANSI 버전으로 구현.

참고 항목

창 클래스 개요 창 클래스 함수, CallWindowProc, GetWindowLong, RegisterClassEx SetParent, WindowProc, WNDCLASSEX

 

Index