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이벤트가 발생하므로 그때는 플래그나 추가적인 설정을 통하여 사용하면 될 것 같습니다.

Posted by 띠깜
,