일반적으로는 폼이 이동중일때마다 근처에 위치한 윈도우나 바탕화면의 경계면 좌표를 계산해서 일정 거리내로 접근하면 해당 좌표로 이동중인 폼의 좌표를 강제로 설정 해 주는 방식을 사용합니다.

생각보다는 어렵지 않구요. 접근 거리만 적당히 지정하면 기존의 자석 효과와 별반 다르지 않은 수준까지 쉽게 개발이 가능합니다.

자신이 작성한 어플리케이션내에서 자석 효과를 구현 할 때에는 각 폼의 좌표만 계산하는 것이 별로 문제 될 것 없지만 바탕화면에서 실행중인 모든 윈도우를 대상으로 자석 효과를 구현한 다면 전체 윈도우의 목록을 얻고 각 윈도우의 특성에 맞게 자석 효과를 구현 해 줘야 합니다.

 

 

GetWindowRect 나 GetClientRect API를 사용하시면 해당 윈도우의 RECT를 알 수 있습니다.

보통은 다른 윈도우와 자석 효과를 내지는 않고 자신의 동료 윈도우나 데스크탑의 경계면하고 자석 효과를 내죠.


====================================

서용혁 (hyuki, mvp, c#)

crazy for .NET

Visual Studio 2005, .NET Framework, C#, MSDN Magazine

신고

+ Recent posts

티스토리 툴바