http://blog.sina.com.cn/s/blog_962f1c150101g8uq.html

通过例子来说明这两个函数的具体作用。

创建一个基于Dialog的MFC应用程序工程Dialog,在对话框上添加一个按钮,其ID为IDC_BTN_ESCAPE:

MFC中函数GetWindowRect()和GetClientRect()的区别

在DialogDlg.cpp中使用语句:

  1. CRect rectBtn;  
  2. GetDlgItem(IDC_BTN_ESCAPE)->GetWindowRect(&rectBtn);  

rectBtn中获取的是以屏幕为坐标轴,按钮在屏幕上的位置。

而使用下面的语句:

  1. CRect rectBtn;  
  2. GetDlgItem(IDC_BTN_ESCAPE)->GetClientRect(&rectBtn);  

rectBtn中获取的是以ID为IDC_BTN_ESCAPE(按钮)的窗口的最左上角的点为坐标原点,按钮的位置。

通过上述分析可知:

GetWindowRect();获取的是以屏幕为坐标轴,此窗口在屏幕上的位置。

GetClientRect();获取的是以其自身的最左上角的点为坐标原点,此窗口的位置。

相关文章: