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

全部博文(1148)

文章存档

2012年(15)

2011年(1078)

2010年(58)

分类: C/C++

2011-07-07 18:52:01

工程代码:  page100_1.rar  


    由于设备描述表中有一个默认的黑色画笔,所以我们绘制的都是黑色的线条。如果我们想绘制其他颜色的线条,首先需要创建一个指定颜色的画笔,然后将此画笔选入设备描述表中,接下来绘制的线条颜色就由这个新画笔的颜色决定了。

    可以利用MFC提供的类CPen 来创建画笔对象。该类封装了与画笔相关的操作。它有三个构造函数,其中一个是:

      CPen(Int style,int width ,COLORREF color);  
     style:画笔的样式   
     width:画笔的宽度   
     color:画笔的颜色(颜色用RGB值来描述)


COLORREF 是一个 32-bit 整型数值,它代表了一种颜色。你可以使用 RGB 函数来
初始化 COLORREF。例如:

  COLORREF color=RGB(0,255,0);
  RGB函数接收三个 0-255 数值,一个代表红色,一个代表绿色,一个代表蓝色。在上面的例子中,红色和蓝色值都为 0,所以在该颜色中没有红色和蓝色。绿色为最大值255。所以该颜色为绿色。0,0,0 为黑色,255,255,255 为白色。



    在程序中,当构造一个DGI对象后(
),该对象不会立即生效,必须选入设备描述表中,它才会在以后的绘制操作中生效。利用SelectObject函数可以实现把GDI对象选入设备描述表中,并且该函数会返回只想先前被选对象的指针。着主要是为了在完成当前绘制操作后,还原设备描述表用的。一般情况下,在完成绘图操作之后,都利用SelectObject函数把先前的GDI对象选入设备描述表,以便使其恢复到先前的状态。

  1. void CDrawView::OnLButtonUp(UINT nFlags, CPoint point)
  2. {
  3.    
  4.     CPen pen(PS_SOLID,10,RGB(255,0,0));
  5.     CClientDC dc(this);
  6.     CPen *pOldPen = dc.SelectObject(&pen);
  7.     
  8.     dc.MoveTo(m_ptOrigin);
  9.     dc.LineTo(point);    
  10.     dc.SelectObject(pOldPen);
  11.     CView::OnLButtonUp(nFlags, point);
  12. }

   可以改变画笔的线型,比如选择虚线线型。 画笔的宽度要小于等于1时,虚线线型才有效。






阅读(536) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~