我在MFC下调用如下语句能够成功CRect rect;
GetClientRect(rect);而函数原型却为void CWnd::GetWindowRect(
LPRECT lpRect
) const;这样的调用为什么不会报错,MFC在背后做了什么工作??
GetClientRect(rect);而函数原型却为void CWnd::GetWindowRect(
LPRECT lpRect
) const;这样的调用为什么不会报错,MFC在背后做了什么工作??
{public:
// convert between CRect and LPRECT/LPCRECT (no need for &)
operator LPRECT() throw();
operator LPCRECT() const throw();
}Crect 重载了 LPRECT 操作符, 一个 CRect 对象可以直接转换成 LPRECT 类型
BOOL GetClientRect( HWND hWnd,
LPRECT lpRect
);
ATLTYPES_INLINE CRect::operator LPRECT() throw()
{ return this; }