MFC中的Rect区别

对话框中有个ID为IDC_STATIC_GLOBAL_MAP的图像控件,图像控件的rect的不同形式.

 

CRect rect; CString temp; GetDlgItem(IDC_STATIC_GLOBAL_MAP)->GetClientRect(&rect); temp.Format(_T("%d %d %d %d"), rect.left, rect.top, rect.right, rect.bottom); MessageBox(temp); //返回值为图像控件的矩形,相对于对话框的矩形.top,left为控件左上角点,坐标为0,0,bottom,right为控件右下角坐标,即为控件大小,440,440. GetDlgItem(IDC_STATIC_GLOBAL_MAP)->GetWindowRect(& rect); temp.Format(_T("%d %d %d %d"), rect.left, rect.top, rect.right, rect.bottom); MessageBox(temp); //返回值为图像控件的矩形,相对于屏幕左上角,top,left为控件左上角点相对于屏幕左上角点的像素坐标,bottom,right为控件右下角相对于屏幕左上角的像素坐标.值会随着对话框移动而改变 ScreenToClient(& rect); temp.Format(_T("%d %d %d %d"), rect.left, rect.top, rect.right, rect.bottom); MessageBox(temp); //ScreenToClient将rect由相对于屏幕左上角的坐标转化为相对对话框左上角的坐标,不过top,left值为51,48,bottom,right值为491,488.

OnMouseMove中point点也是相对于对话框左上角的坐标.

你可能感兴趣的:(mfc)