프로그래밍/MFC , WinAPI

SetWindowLong 함수란 무엇인가?

친루엄 2018. 4. 13. 17:51
SetWindowLong

 

LONG WINAPI SetWindowLong(
  _In_ HWND hWnd,
  _In_ int  nIndex,
  _In_ LONG dwNewLong
);


지정된 윈도우의 속성을 변경합니다. 이 함수로 지정된 기능을  32bit 값으로 메모리에 추가합니다.

이 함수는 SetWindowLongPtr 함수로 대체 되었습니다.32bit, 64bit와 호환됩니다.  사용법은 같습니다.

 이 함수는 SetWindowPos함수를 호출할때까지 적용되지 않습니다.

 

 

hWnd

  변경을 원하는 윈도우의 핸들

 

nIndex

  어느 설정을 변경 할 것인지 정해진 상수로 넣어줍니다.

  GWL_EXSTYLE -  새로운 확장 윈도우 스타일을 설정합니다.

  GWL_HINSTANCE - 새 응용 프로그램 인스턴스 핸들을 설정합니다.

  GWL_ID - 하위 윈도우의 새 식별자를 설정합니다. 창은 최상위 창이 될수없습니다.

  GWL_STYLE  - 새로운 윈도우 스타일을 설정합니다.

  GWL_USERDATA - 창과 관련된 사용자 데이터를 설정합니다. 이 값은 창을 만든 응용프로그램에서 사용

                                하기 위한 값입니다. 초기 값은 0입니다.

  GWL_WNDPROC - 윈도우 프로시저의 새주소를 설정합니다. 창이 호출한 스레도와 동일한 프로세스에 

                                  속하지 않으면 이 값은 변경 할수 없습니다.

 

대화상자전용입니다.

 

  DWL_DLGPROC -  대화상자 프로시저의 새 주소를 설정합니다.

  DWL_MSGRESULT - 대화상자 프로시저에 처리되는 메시지의 반환값을 설정합니다.

  DWL_USER - 응욜 프로그램에 대한 추가 정보를 새로 설정합니다.

 

dwNewLong

  대체하고 싶은 값을 넣어줍니다.  자세한 정보는 MSDN을 참고 바랍니다.

  GWL_EXSTYLE 값을 바꾸고 싶은경우 아래 주소를 참고하세요.

   https://msdn.microsoft.com/ko-kr/library/windows/desktop/ff700543(v=vs.85).aspx

 

 

반환값

  함수가 성공하면 반환값은 dwNewLong 입니다.  실패하면 0입니다.