SystemParametersInfo는 시스템의 설정을 변경하거나 가져올때 사용하는데 재밌는 기능이 있길래 하나 소개해 봅니다.
::SystemParametersInfo( SPI_SETDRAGFULLWINDOWS, FALSE, NULL, 0 );
or
::SystemParametersInfo( SPI_SETDRAGFULLWINDOWS, TRUE, NULL, 0 );
한줄입니다.
위의 그림처럼 이동이나 사이즈조정을 할때 크기를 정하고 난뒤에 PAINT를 해주는 동작이 필요할 경우 사용하면 될 것같습니다.
단, 시스템 설정이 변경되므로 해당 어플리케이션에 포커스가 있을경우만 동작하도록 프로그램을 구현해 줘야 하겠죠?
사이즈 조정할 경우 마우스UP 이벤트가 발생할 경우만 PAINT가 이루어 지도록 할 경우
WM_NCLBUTTONDOWN : ::SystemParametersInfo( SPI_SETDRAGFULLWINDOWS, FALSE, NULL, 0 );
WM_CAPTURECHANGED : ::SystemParametersInfo( SPI_SETDRAGFULLWINDOWS, TRUE, NULL, 0 );
어플위치를 변경할 경우에도 사용하고자 한다면, 이동시 WM_CAPTURECHANGED이벤트가 발생하므로 그때는 플래그나 추가적인 설정을 통하여 사용하면 될 것 같습니다.
'프로그래밍 팁 > etc' 카테고리의 다른 글
윈도우7 XML을 이용한 작업스케줄러 등록 (0) | 2010.11.03 |
---|---|
전역 HotKey (0) | 2010.11.02 |
PE 체크섬(Checksum) 활용 (0) | 2010.10.15 |
어플리케이션에서 자바스크립트 호출하기 (0) | 2010.08.12 |
프로세스 이름으로 PID 찾기 (0) | 2010.08.12 |