[개발/VC] 다이얼로그 바탕화면에서 자석효과 구현
// 숫자를 작게 하여 바탕화면 자석효과 거리를 줄이고 크게 하여 자석효과 거리를 늘립니다.
다이얼로그의 클래스 위저드에서 OnWindowPosChanging 함수를 추가합니다.
그 다음 아래와 같이 코드를 작성합니다.
void CMagnetDlg::OnWindowPosChanging(WINDOWPOS FAR* lpwndpos)
{
CDialog::OnWindowPosChanging(lpwndpos);
CRect rect;
GetWindowRect ( &rect);
int cx = GetSystemMetrics(SM_CXSCREEN);
int cy = GetSystemMetrics(SM_CYSCREEN);
// 바탕화면 경계에서 자석효과
if ((lpwndpos->x > 0) && (lpwndpos->x <= 20))
lpwndpos->x = 0;
if ((lpwndpos->y > 0) && (lpwndpos->y <= 20))
lpwndpos->y = 0;
if ((lpwndpos->x + rect.Width() >= cx-20) && (lpwndpos->x + rect.Width() < cx))
lpwndpos->x = cx - rect.Width();
if ((lpwndpos->y + rect.Height() >= cy-20) && (lpwndpos->y + rect.Height() < cy))
lpwndpos->y = cy - rect.Height();
}
반응형
'IT-개발,DB' 카테고리의 다른 글
Visual C++ / MFC로 개발한 좋은 오픈 프로젝트들 (0) | 2011.12.07 |
---|---|
[개발/VC++] Visual C++ 에서 컴파일시 LNK2019 에러에 대한 해결방법 (0) | 2011.12.06 |
[개발/MFC] 인터넷 임시파일 삭제하기 (0) | 2011.12.02 |
[개발/VC++] fatal error C1083: 포함 파일을 열 수 없습니다. 'stdafx.h': No such file or directory (0) | 2011.11.17 |
[개발/MFC] 비스타 이상에서 권한이 낮은 프로세스에서 WM_COPYDATA 메세지 전송 (0) | 2011.11.16 |
댓글