| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 761 人关注过本帖
标题:关于MFC图像处理中画笔的
只看楼主 加入收藏
sunny000725
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-4-20
结帖率:100%
收藏
 问题点数:0 回复次数:1 
关于MFC图像处理中画笔的
void CUsePenView::OnDraw(CDC* pDC)
{
    CUsePenDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    // TODO: add draw code for native data here
    CPen * pPenOld,PenNew;
    int nPenStyle[]={PS_SOLID,  //实线
                     PS_DOT,    //点线
                     PS_DASH,   //虚线
                     PS_DASHDOT,//点划线
                     PS_DASHDOTDOT,//双点划线
                     PS_NULL,     //空的边框
                     PS_INSIDEFRAME,  //边框实线
    };
    char * strStyle[]={"Solid","Dot","Dash","DashDot","DashDotDot","Null","InsideFrame"};
    pDC->TextOut(60,10,"用不同样式的画笔绘图");
    for(int i=0;i<7;i++)
    {
     if(PenNew,CreatePen(nPenStyle[i],1,RGB(0,0,0)))
     {  
      pPenOld=pDC->SelectObject(&PenNew);
      pDC->TextOut(10,30+20*i,strStyle[i]);
      pDC->MoveTo(100,40+20*i);
      pDC->LineTo(200,40+20*i);
      pDC->SelectObject(pPenOld);
      PenNew.DeleteObject();
     }
     else
     {
         MessageBox("不能创建画笔!");
     }
      
      
    }
    char * strWidth[]={"1","2","3","4","5","6","7"};
    pDC->TextOut(260,10,"用不同宽度的画笔绘图");
    for(int j=0;j<7;j++)
    {
     if(PenNew,CreatePen(PS_SOLID,j+1,RGB(0,0,0)))
     {  
      pPenOld=pDC->SelectObject(&PenNew);
      pDC->TextOut(260,30+20*j,strWidth[j]);
      pDC->MoveTo(300,40+20*j);
      pDC->LineTo(400,40+20*j);
      pDC->SelectObject(pPenOld);
      PenNew.DeleteObject();
     }
     else
     {
         MessageBox("不能创建画笔!");
     }
    }
    char * strColor[]={"红","绿","蓝","黄","紫","青","灰"};
    COLORREF rgbPenClr[]={RGB(255,0,0),RGB(0,255,0),RGB(0,0,255),RGB(255,255,0),
                      RGB(255,0,255),RGB(0,255,255),RGB(192,192,192)};

    pDC->TextOut(460,10,"用不同颜色的画笔绘图");
    for(int k=0;k<7;k++)
    {
      CPen *pPenNew=new CPen(PS_SOLID,2,rgbPenClr[k]);
      pPenOld=pDC->SelectObject(&PenNew);
      pDC->TextOut(460,30+20*k,strColor[k]);
      pDC->MoveTo(500,40+20*k);
      pDC->LineTo(600,40+20*k);
      pDC->SelectObject(pPenOld);       //恢复设备环境中原来的画笔
      delete pPenNew ;                     
    }


}
得出来的结果都是实黑线,怎么回事?有哪位大侠帮忙解决一下。
搜索更多相关主题的帖子: 边框 画笔 
2012-02-27 12:30
sunny000725
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-4-20
收藏
得分:0 
我懂了!if(PenNew,CreatePen(nPenStyle[i],1,RGB(0,0,0)))中应该改为PenNew.CreatePen(nPenStyle[i],1,RGB(0,0,0))
2012-02-27 16:20
快速回复:关于MFC图像处理中画笔的
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040650 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved