달력

12

« 2018/12 »

  •  
  •  
  •  
  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  
  •  

'SetClassLongPtr'에 해당되는 글 1

  1. 2010.04.24 API-WindowLong
2010.04.24 20:03

API-WindowLong 프로그래밍/API2010.04.24 20:03





CreateWindow로 윈도우를 만들 때 설정했던 윈도우의 속성들을 실행중에 조사하거나 바꾸고자 할때

LONG GetWindowLong(HWND hWnd, int nIndex);
LONG SetWindowLong(HWND hWnd, int nIndex, LONG dwNewLong);

이다.

이는 32비트용이고,

64비트를 지원하는 새로운 함수 원형은 다음과 같다.

LONG_PTR GetWindowLongPtr(HWND hWnd, int nIndex);
LONG_PTR SetWindowLongPtr(HWND hWnd, int nIndex, LONG_PTR dwNewLong);

쓰는 법은 똑같으며, 함수명 뒤에 Ptr이 붙고 LONG대신 LONG_PTR을 쓰는 정도의 차이밖에 없다고 한다.


특별한 기능은 없고, 실행 후 왼쪽 버튼을 누르면, 색상이 변경되고,
오른쪽 버튼을 누르면 마우스 포인터가 변경되는 간단한 예제이다.
특별히 살펴 볼 점은 SetClassLongPtr의 2번째 인자인데, 예제에서는 백그라운드를 관리하는 GCLP_HBRBACKGROUND와
커서를 관리하는 GCLP_HCURSOR 를 사용했었따는 점이다.

실행 화면은 pass 어차피 보여봤자, 백그라운드 색상 밖에 없으니까.

'프로그래밍 > API' 카테고리의 다른 글

API-더블 버퍼링  (0) 2010.05.10
API-ChildWnd  (0) 2010.04.24
API-WindowLong  (0) 2010.04.24
API-WNDCLASSEX  (0) 2010.04.24
API-대화상자  (0) 2010.04.24
API-Control(2)  (0) 2010.04.24
Posted by 안식의후크