限制窗口在屏幕范围内移动(不能移到屏幕外)
响应WM_WINDOWPOSCHANGING消息
afx_msg void OnWindowPosChanging(WINDOWPOS FAR* lpwndpos);
ON_WM_WINDOWPOSCHANGING()
void CMoveWindowDlg::OnWindowPosChanging(WINDOWPOS FAR* lpwndpos)
{
CDialog::OnWindowPosChanging(lpwndpos);
int cx = GetSystemMetrics(SM_CXSCREEN);
int cy = GetSystemMetrics(SM_CYSCREEN);
CRect rect(0 ,0, cx, cy);
if(lpwndpos->x < rect.left)
lpwndpos->x = rect.left;
if(lpwndpos->y < rect.top)
lpwndpos->y = rect.top;
if(lpwndpos->x + lpwndpos->cx > rect.right)
lpwndpos->x = rect.right - lpwndpos->cx;
if(lpwndpos->y + lpwndpos->cy > rect.bottom)
lpwndpos->y = rect.bottom - lpwndpos->cy;
}