MFC的CRect

来源:百度知道 编辑:UC知道 时间:2024/06/01 07:08:51
CRect类中的成员(不包括函数)有哪些呢?
CRect rect;
GetClientRect(&rect);
这两句命令获得了哪个窗口的坐标?
CRect rect;生成了怎样一个类对象?

GetClientRect(&rect); 是获得窗口的当前的客户区,通常的窗口从上到下一次是标题栏,菜单栏,工具栏,客户区,最底下的是状态栏,客户区就是用来和应用程序交互的地方。

CRect 实际上是一个矩形的类,数据成员是,(矩形左上角的x的坐标,矩形左上角Y的坐标,矩形右下角x的坐标,矩形右下角Y的坐标)

每一个窗口对象都有一个GetClientRect函数(它是CWnd的一个成员函数,每一个从CWnd派生的类都会继承它),用来返回当前窗口的区域。对话框有、对话框控件也有.....,那你就要看看是谁来调用这个GetClientRect函数的。
如果是在对话框内部调用的这个函数(GetClientRect前什么也没有加,每个类都有一个隐含的this指针),它当然返回的就是对话框的区域。如果对话上一个CEdit控件,并有一个与他关联的成员变量(控件类型),m_wndEdtText,那个m_wndEdtText也是一个窗口,当你在对话内的成员函数调用m_wndEdtText.GetClientRect(&rect)的时候它返回的就是控件CEdit的区域。
关键你得看是谁调用了这个函数。

CRect rect 生成的这个对象就表示一个矩形区域,表示了窗口的大小和位置,可以通过CRect类的方法,获该区域的具体信息,如顶点、窗口的高和宽。

一个矩形的图形对象,他包含了一个结构体是
typedef struct tagRECT {
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT;
表示左上和右下的坐标。所以用GetClientRect()可以获得用户区的矩形窗口区域大小。

详细还是看MSDN吧

答案是获取各户区的坐标,所以有top和Left都是为0

还有就是GetClientRect这个函数是接受的一个RECT类型的指针这个是WINDOWS

API里面的数据类型.

像你这样的其实是强制类型转换,用CRect类型指针转换为R