Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4263007
  • 博文数量: 1148
  • 博客积分: 25453
  • 博客等级: 上将
  • 技术积分: 11949
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-06 21:14
文章分类

全部博文(1148)

文章存档

2012年(15)

2011年(1078)

2010年(58)

分类: C/C++

2011-07-07 18:13:36

工程代码:  page100_1.rar  
   
    利用MFC提供的CClientDC类来实现功能。 这个类派生于CDC类,并且在构造时调用GetDC函数,在析构时调用Release函数。也就是说,当一个CClientDC对象在构造时,它在内部会调用GetDC函数,获得一个设备描述表对象;当这个CClientDC对象析构时,会自动释放这个设备描述表资源。这样的话,程序中如果使用了CClientDC类型定义一个CClientDC对象,然后就可以利用该对象提供的函数进行绘图操作了。当该对象的生命周期结束时,会自动释放其所占用的设备资源。这就是CClientDC对象的好处。

  1. void CDrawView::OnLButtonUp(UINT nFlags, CPoint point)
  2. {
  3.     // TODO: Add your message handler code here and/or call default
  4. /*
  5.     //首先获得窗口的设备描述表
  6.     HDC hdc;
  7.     hdc = ::GetDC(m_hWnd);
  8.     //移动到线条的起点
  9.     MoveToEx(hdc,m_ptOrigin.x,m_ptOrigin.y,NULL);
  10.     //画线
  11.     LineTo(hdc,point.x,point.y);
  12.     //释放设备描述符
  13.     ::ReleaseDC(m_hWnd,hdc);
  14. */
  15. /*
  16.     CDC * pDC = GetDC();
  17.     pDC->MoveTo(m_ptOrigin);
  18.     pDC->LineTo(point);
  19.     ReleaseDC(pDC);
  20. */
  21.     CClientDC dc(this);
  22.     dc.MoveTo(m_ptOrigin);
  23.     dc.LineTo(point);    
  24.     CView::OnLButtonUp(nFlags, point);
  25. }
 
   我们可以注意到,利用CClientDC类绘图时,因为该对象在析构时会自动调用ReleaseDC 函数释放设备资源,所以不需要程序员再去调用这个函数了。

  




 
阅读(1621) | 评论(0) | 转发(0) |
0

上一篇:CDC类 常用函数

下一篇:绘制彩色线条 6

给主人留下些什么吧!~~