MFC编程实验(二):GDI绘图

一、实验要求

  1. 以窗口中心点为原点,绘制y=x2的函数曲线,并在曲线旁边用文字描述;
  2. 绘制一个红色的圆,并绘制该圆的外切正方形,该正方形填充颜色为蓝色,边线颜色为绿色。

二、实验过程

(一)绘制y=x2的函数曲线

       1、利用MFC新建一个基于对单文档的应用程序(SDI应用程序),工程名为Function。

 

 

2、在类视图中找到CfunctionVie,在这个文档的头文件中添加:#include "math.h"

 

3、在文件中找到下OnDraw()方法。在其中添加代码:根据示例图中的要求先绘制函数图像,并显示文字描述。主要分为三步完成:

① 绘制横纵坐标轴,设置原点;

② 根据要求绘制函数图像;

③ 输出函数文本描述。

 

4、这个程序使用到了绘图函数MoveTo()和LineTo(),分别控制起始点和终点;根据函数绘制图像以及文本的输出。其中CRect 实际上是一个矩形的类。运行结果如下图。

 

 

 

(二)按要求绘制圆形及其外接矩形

1、继续在程序中添加代码,绘制一个红色的圆及它的绿色的外接矩形并将两个图形之间的部分填充为蓝色。分为三步:

①绘制一个矩形其边框为绿色;

②将其矩形内部填充为蓝色;

③绘制一个边框为红色的圆即可实现。

代码如下。

 

 

2、这个程序主要使用到了Pen和Brush,需要注意其使用的流程。运行结果如下图。

 

 

 

(三)显示一幅位图

1、在菜单栏中找到插入,选择插入资源,类型为Bitmap。选择一张准备好的位图图片,选中插入。

 

 

2、继续添加代码,将插入的位图载入并显示出来。代码如下。

 

 

其中的StretchBlt()方法将内存中的位图拷贝到屏幕上,并且可以根据屏幕画图区的大小来进行伸缩,适应响应的屏幕或者控件。查阅了资料,参数作用分别为:

 

CDC::StretchBlt ( int x, int y,int nWidth,int nHeight, CDC* pSrcDC, intxSrc,  int ySrc, int nSrcWidth,  int nSrcHeight, DWORD dwRop)

返回值:如果位图已经绘制,则返回非零值,否则为0。

参数:     x                目标矩形左上角的X逻辑坐标。 

                 y               目标矩形左上角的Y逻辑坐标。 

            nWidth           目标矩形的宽度(逻辑单位)。 

            nHeight          目标矩形的高度(逻辑单位)。 

            pSrcDC          指定源设备上下文。 

              xSrc             源矩形左上角的X逻辑坐标。 

           ySrc              源矩形左上角的Y逻辑坐标。 

           nSrcWidth        源矩形的宽度(逻辑单位)。 

          nSrcHeight       源矩形的高度(逻辑单位)。 

          dwRop              指定光栅操作。

 

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值