网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
如何使用Win32中新增的GDI对象——路径
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
w()函数中添加如下代码:
 void CPathView::OnDraw(CDC* pDC)
 {
 ……
 // TODO: add draw code for native data here
 RECT rect;
 GetClientRect(&rect);
 CFont* pOldFont=(CFont*)pDC->SelectObject(&m_fontKaiTi);
 pDC->SetBkMode(TRANSPARENT);
 //定义路径
 pDC->BeginPath();{
 pDC->TextOut(0,10,"龙",2);
 pDC->TextOut(200,10,"腾",2);
 pDC->TextOut(400,10,"虎",2);
 pDC->TextOut(600,10,"跃",2); }
 pDC->EndPath();
 pDC->SelectObject(pOldFont);
 //检取路径数据
 int nCount=pDC->GetPath(NULL,NULL,0);
 CPoint* points=new CPoint[nCount];
 BYTE* bytes=new BYTE[nCount];
 pDC->GetPath(points,bytes,nCount);
 //对路径定义点按正弦曲线进行变换
 int i;
 for(i=0;i< nCount;i++)>/p>
 points[i].y=points[i].y+(int)(80*sin(points[i].x
 /300.*3.1415926)+100);
 //重建一个新的路径
 CPoint ptStart;
 pDC->BeginPath();{
 for(i=0;i< nCount;i++){>/p>
 switch(bytes[i]){
 //移动当前点位置
 case PT_MOVETO:
 pDC->MoveTo(points[i]);
 ptStart=points[i];
 break;
 //画直线
 case PT_LINETO:
 pDC->LineTo(points[i]);
 break;
 //画贝塞尔曲线
 case PT_BEZIERTO:
 pDC->PolyBezierTo(points+i,3);
 i=i+2;
 break;
 //画贝塞尔曲线并封闭图形
 case PT_BEZIERTO|PT_CLOSEFIGURE:
 points[i+2]=ptStart;
 pDC->PolyBezierTo(points+i,3);
 i=i+2;
 break;
 //画直线并封闭图形
 case PT_LINETO|PT_CLOSEFIGURE:
 pDC->LineTo(ptStart);
 break;
 }
 }
 pDC->CloseFigure();
 }
 pDC->EndPath();
 //绘制窗口灰色背景
 CBrush* pOldBrush=(CBrush*)(pDC->SelectStockObject(GRAY_BRUSH));
 pDC->Rectangle(&rect);
 pDC->SelectObject(pOldBrush);
 //设置裁剪路径
 pDC->SetPolyFillMode(WINDING);
 pDC->SelectClipPath(RGN_COPY);
 //用位图填充裁剪区域
 CBitmap bmp;
 CBitmap* pBmpOld;
 bmp.LoadBitmap(IDB_BMP);
 CDC dcMem;
 dcMem.CreateCompatibleDC(pDC);
 pBmpOld=dcMem.SelectObject(&bmp);
 pDC->StretchBlt(0,0,rect.right,rect.bottom,
 &dcMem,0,0,600,100,SRCCOPY);
 dcMem.SelectObject(pBmpOld);
 dcMem.DeleteDC();
 bmp.DeleteObject();
 }
 (4)在资源中添加文字前景位图,其ID为IDB_BMP。
 (5)编译,连接,运行该应用程序

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号