通过例子来说明这两个函数的具体作用。
创建一个基于Dialog的MFC应用程序工程Dialog,在对话框上添加一个按钮,其ID为IDC_BTN_ESCAPE:
在DialogDlg.cpp中使用语句:
- CRect
rectBtn; - GetDlgItem(IDC_BTN_ESCAPE)->GetWindowRect(&rectBtn);
rectBtn中获取的是以屏幕为坐标轴,按钮在屏幕上的位置。
而使用下面的语句:
- CRect
rectBtn; - GetDlgItem(IDC_BTN_ESCAPE)->GetClientRect(&rectBtn);
rectBtn中获取的是以ID为IDC_BTN_ESCAPE(按钮)的窗口的最左上角的点为坐标原点,按钮的位置。
通过上述分析可知:
GetWindowRect();获取的是以屏幕为坐标轴,此窗口在屏幕上的位置。
GetClientRect();获取的是以其自身的最左上角的点为坐标原点,此窗口的位置。
在DialogDlg.cpp中使用语句:
- CRect
rectBtn; - GetDlgItem(IDC_BTN_ESCAPE)->GetWindowRect(&rectBtn);
rectBtn中获取的是以屏幕为坐标轴,按钮在屏幕上的位置。
而使用下面的语句:
- CRect
rectBtn; - GetDlgItem(IDC_BTN_ESCAPE)->GetClientRect(&rectBtn);
rectBtn中获取的是以ID为IDC_BTN_ESCAPE(按钮)的窗口的最左上角的点为坐标原点,按钮的位置。
通过上述分析可知:
GetWindowRect();获取的是以屏幕为坐标轴,此窗口在屏幕上的位置。
GetClientRect();获取的是以其自身的最左上角的点为坐标原点,此窗口的位置。