관리 메뉴

ㄴrㅎnㅂrㄹrㄱi

GetWindowLong(A) 본문

API 관련/Win32 API 함수

GetWindowLong(A)

님투 2007. 11. 8. 22:57
반응형

GetWindowLong(A)

지정된 윈도우에 관한 정보를 취득합니다.또, 확장 윈드우메모리로부터, 지정된 오프셋에 있다32비트치를 취득할 수도 있습니다.

포인터 또는 핸들을 취득하는 경우, 이 함수는 GetWindowLongPtr 에 교체되고 있습니다.이것은, 포인터나 핸들이32비트판 Windows 그럼32비트인데 대해,64비트판 Windows 그럼64비트이기 (위해)때문입니다.32비트판과64비트판의 Windows 그리고 공통되어 이용할 수 있는 코드를 기술하는 경우에는, GetWindowLongPtr 함수를 사용할 필요가 있습니다.

LONG GetWindowLongA(
    HWND hWnd,   // 윈도우 핸들
    int  nIndex  // 취득하는 데이터의 지정
);

USER32.DLL

인수

hWnd

정보를 취득하는 윈도우의 핸들을 지정합니다.

nIndex

어느 정보를 취득하는지를 지정합니다.

확장 윈드우메모리로부터 데이터를 취득할 때는, 0 (으)로부터 시작되는 오프셋을 아르바이트 단위로 지정합니다.유효한 오프셋은, 0 (으)로부터 (확장 윈드우메모리의 아르바이트수 - 4) 까지입니다.

확장 윈드우메모리 이외의 값을 취득하려면 , 다음의 어느쪽이든을 지정합니다.

취득되는 속성
-4 (GWL_WNDPROC) 윈도우 프로시저의 주소

직접 윈도우 프로시저를 호출하려면 CallWindowProc 함수를 사용하지 않으면 안됩니다.

-6 (GWL_HINSTANCE) 어플리케이션의 인스턴스 핸들
-8 (GWL_HWNDPARENT) 친윈도우의 핸들
-16 (GWL_STYLE) 윈도우 스타일
-20 (GWL_EXSTYLE) 확장 윈도우 스타일
-21 (GWL_USERDATA) 윈도우에 관련지을 수 있었던 어플리케이션 정의의32비트치
-12 (GWL_ID) 윈도우 ID

hWnd 파라미터가 다이알로그 박스의 핸들인 경우에는, 이하의 값을 지정할 수도 있습니다.

취득되는 속성
0 (DWL_MSGRESULT) 다이알로그 박스 프로시저로 처리된 메세지의 반환값
4 (DWL_DLGPROC) 다이알로그 박스 프로시저의 주소

직접 다이알로그 박스 프로시저를 호출하려면 CallWindowProc 함수를 사용하지 않으면 안됩니다.

8 (DWL_USER) 어플리케이션 정의의 정보(핸들이나 포인터 등)

반환값

성공하면, 취득되었다32비트치가 돌아갑니다.

실패하면 0 하지만 돌아갑니다.확장 에러 정보를 취득하려면 , GetLastError 함수를 사용합니다.

취득한 값이 0 (이었)였다고 와, 성공해도 0 하지만 돌아갑니다.이 문제를 해결하려면 , SetLastError 함수를 인수 0 그리고 호출하고 나서, GetWindowLong 함수를 호출합니다.함수가 실패하면, 직후에 호출한다 GetLastError 함수가 0 이외의 값을 돌려줍니다.

해설

확장 윈드우메모리는, RegisterClassEx 함수에 건네준다 WNDCLASSEX 구조체(또는 RegisterClass 함수에 건네준다 WNDCLASS 구조체)의 cbWndExtra 멤버에 0 이외의 값을 설정하는 것에 의해서 확보합니다.

대응 정보

Windows 95 이후 / Windows NT 3.1 이후

반응형

'API 관련 > Win32 API 함수' 카테고리의 다른 글

GetWindowRgn  (0) 2007.11.08
GetWindowRect  (0) 2007.11.08
GetWindowDC  (0) 2007.11.08
GetVersionEx(A)  (0) 2007.11.08
GetSysColorBrush  (0) 2007.11.08
Comments