void CMy123View::OnLButtonUp(UINT nFlags, CPoint point) 
{
// TODO: Add your message handler code here and/or call defaultCBrush brush(RGB(255,0,0));
CClientDC dc(this);
dc.FillRect(CRect(m_ptOrigin,point),&brush); CView::OnLButtonUp(nFlags, point);
}
VC++深入详解中的原程序代码中通过CRect类利用鼠标拖动的起点和重点够早了这块矩形区域,CRect类提供多个构造函数,本例使用的是下面这种构造函数
CRect(POINT topLeft,POINT bottomright);我想问这个CRect函数 他既然是CRect的构造函数,可是并没有申请对象啊,CRect是怎么调用的

解决方案 »

  1.   

    CRect(m_ptOrigin,point)
    临时对象
      

  2.   

    我想问这个CRect函数 他既然是CRect的构造函数,可是并没有申请对象啊,CRect是怎么调用的
    =========
    产生了下个临时的对象
      

  3.   

    dc.FillRect(CRect(m_ptOrigin,point),&brush);
    CRect(m_ptOrigin,point)这样调用就已经是在构造对象了,只还过是临时对象,
    就你Java中FillRect(new CRect(m_ptOrigin,point))一样的效果,只是c++中没有用这个new而以