MFC 中操作图元文件,矢量图,WMF,EMF

这篇博客介绍了在MFC环境下如何操作和创建WMF与EMF矢量图,包括如何加载、输出图元文件以及使用CMetaFileDC和CreateMetaFile()创建新的图元文件。通过示例代码展示了如何实现图形的放大缩小和翻转,以实现完美的图形显示效果。
摘要由CSDN通过智能技术生成

在windows绘图中,有2种图形:矢量图和位图。如果要做图形的完美放大和缩小,应该使用矢量图。如果使用位图,当放大过大的时候,就会出现模糊的情况,因为位图的放大,是把1个像素绘制在多个像素点上,当大到一定地步,整个屏幕可以只有一个像素。

 

矢量图中较为常见的图元是:WMF和EMF文件,我们要在程序中输出图元,只需要使用下面的步骤:

在程序中输出图元:

CDC * pDC = GetDC();

HENHMETAFILE hemf = GetEnhMetaFile("F:\\1.emf");     //建立一个图元文件句柄hemf,保存从硬盘加载的emf文件格式的图元,图元名称是1.emf。也可以使用wmf格式的图元。
 if(hemf  !=  NULL)   //如果读取图元成功,则输出图元
 {
           CRect rect(0,0,100,100);    //建立一个矩形用来输出图元,矩形越大,图元会成比例放大,矩形越小,图元也会成比例缩小。矩形还可以实现图元的上下左右翻转,比如使用这样的矩形 rect(100,100,0,0)就会实现对角线翻转,使用rect(100,0,0,100)会实现左右翻转,使用rect(0,100,100,0)会实现上下翻转
           PlayEnhMetaFile(pDC->m_hDC,hemf,&rect);   //输出图元
           DeleteEnhMetaFile(hemf);      //删除图元句柄
 }

如果没有图元文件,需要自己创建图元文件,则可以使用2中方法,一种是CreateMetaFile().还有一种是使用CMetaFileDC来创建。使用CMetaFileDC更为简单:

使用CMetaFileDC创建图元步骤:创建图元DC---》创建图元---》使用图元DC绘图,构建图元的图形---》关闭图元DC,完成创建。

CDC * pDC = GetDC();

CMetaFileDC metaDC;            //创建图元DC                  
 metaDC.CreateEnhanced(pDC,"F:\\1.emf",NULL,NULL);  //创建图元对象
 metaDC.MoveTo(10,10);        //在图元对象上画图,如果不画图,图元是空的。自己绘制自己想

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值