限制窗口在屏幕范围内移动(不能移到屏幕外)

来源:互联网 发布:2005数据库图标 编辑:程序博客网 时间:2024/04/30 09:53

限制窗口在屏幕范围内移动(不能移到屏幕外)

响应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;
 

}
 

原创粉丝点击