MFC随笔 1.30
View Code
1 void CMyView::OnLButtonDown(UINT nFlags,CPoint point) 2 { 3 CRect rect 4 CDC* pDC=GetDC();//通过调用CWnd的GetDC成员函数来获得设备环境的指针 5 pDC->GetClipBox(rect); 6 RealeaseDC(pDC);//必须调用ReleaseDC函数释放设备环境 7 }
1 void CMyView::OnLbuttonDown(UINT nFlags,CPoint point) 2 { 3 CRect rect; 4 CClientDC dc(this);// CClientDC的构造函数以一个窗口指针作为第参数 5 而它的析构函数在函数返回时被自动调用。 6 dc.GetClipBox(rect) 7 8 }
2.在选进自己的GDI对象的同时,将原来的GDI对象也保存起来,当任务完成后,再将原来的对象恢复,这样就可以将自己的GDI对象删除掉了
1 void CMyView::OnDraw(CDC* pDC) 2 3 { 4 5 CPen newPen(PS_DASHDOTDOT,2,(COLORREF)0); 6 7 CPen* pOldPen=pDC->SelectObject(&newPen); 8 9 pDC->MoveTo(10,10); 10 11 pDC->LineTo(110,10); 12 13 pDC->SelectObject(pOldPen); 14 15 }
MFC库函数SelectStockObject可以把一个库存对象选进设备环境中,并返回原先被选中的对象的指针,同时使该对象被分离出来
1 void CMyView::OnDraw(CDC* pDC) 2 3 { 4 5 CPen newPen(PS_DASHDOTDOT,2,(COLORREF)0); 6 7 pDC->MoveTo(10,10); 8 9 pDC->LineTo(110,10); 10 11 pDC->SelectStockObject(BLACK_PEN); 12 13 }//newPen destroyed on exit