MFC 中GetClientRect、ClientToScreen、GetWindow、RectScreenToClient的使用

时间:2022-09-25 09:18:21

CWnd* pWnd = GetDlgItem(IDB_BUT_RECOGNIZE);

pWnd->GetClientRect(&rect);   //指该控件自身客户区的矩形,原点为控件左上角,长宽为整个控件的尺寸

ClientToScreen(&rect);    // 坐标原点从控件所属窗口客户区移动到屏幕左上角,长宽为整个控件的尺寸,相当于把控件放在它所属的客户区的左上角时,在屏幕坐标系中的位置

pWnd->GetWindowRect(&rect);   //该控件相对电脑屏幕的坐标,,原点为屏幕左上角,长宽为整个控件的尺寸

ScreenToClient(&rect); //移动窗口时未改变,所以是相对位置,从屏幕坐标变换到客户区坐标,相当于该控件到客户区

GetClientRect(&rect);  //整个窗口自身客户区的坐标 ,原点为客户区左上角,长宽为客户区的尺寸

ClientToScreen(&rect);   // 坐标系从客户区变换到屏幕, 该窗口客户区在屏幕坐标系中的位置

GetWindowRect(&rect);  //整个窗口相对于电脑屏幕的坐标,,原点为屏幕左上角,长宽为整个窗口的尺寸

ScreenToClient(&rect);  //整个窗口在客户区坐标系下的位置

上文转自:https://blog.csdn.net/kapok_lalala/article/details/71859362

一般情况下,ClientToScreen(&rect)与GetClientRect(&rect)联合使用, 联合使用;ScreenToClient(&rect)与GetWindowRect(&rect)联合使用