要求

1、 在客户区输出一条顺时针45度的直线、一个正方形、一个大圆;

2、 在客户区输出一个图标;

3、 当按下鼠标左键时,将以鼠标坐标为圆心画直径为20个单位的小圆。

  1. 首先设置两个变量,用来保存颜色和线宽。这样就但是通过程序设置圆或者线条的颜色和宽度了。(加入在view类的构造函数中)
COLORREF color;
int penwidth;</span>

    2. 画45度直线的实现代码例如以下:

CClientDC dc(this);
CPen pen(PS_SOLID,penwidth,color);
dc.SelectObject(&pen);
dc.MoveTo(0,0);
dc.LineTo(400,400);

    3. 画矩形的代码实现例如以下:

CClientDC dc(this);
CPen pen(PS_SOLID,penwidth,color);
dc.SelectObject(&pen);
dc.Rectangle(200,200,400,400);

    4. 画圆的实现代码例如以下:(凝视掉的部分为CPen填充矩形,未凝视的是用CBrush填充矩形)

CClientDC dc(this);
//CPen pen(PS_SOLID,penwidth,color); CBrush brush=RGB(255,255,0);
CBrush* pbr=dc.SelectObject(&brush); dc.SelectObject(&brush);
dc.Ellipse(300,300,400,400);
// TODO: Add your command handler code here
//CDC* pdc=GetDC();
//pdc->Ellipse(300,300,400,400);

     5. 在客户区输出一个图标的实现代码例如以下:(提前通过编译器将程序导入)

CDC* pdc=GetDC();
BITMAP bitmap;
CBitmap bm;
bm.LoadBitmap(IDB_BITMAP1);
bm.GetBitmap(&bitmap);
CClientDC dc(this);
dc.CreateCompatibleDC(pdc);
dc.SelectObject(&bm);
pdc->BitBlt(320,30,180,120,&dc,80,50,SRCCOPY);

      6. 当按下鼠标左键时,将以鼠标坐标为圆心画直径为20个单位的小圆,实现代码例如以下:(首先加入鼠标左键按下的响应事件,然后加入例如以下代码)

CClientDC dc(this);
CPen pen(PS_SOLID,penwidth,color);
dc.SelectObject(&pen);
dc.Ellipse(point.x-10,point.y-10,point.x+10,point.y+10);

执行截图例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

參考博客:用MFC “菜单响应事件” 实现画图

本程序的下载地址:点击下载  http://download.csdn.net/detail/rl529014/9498564

最新文章

  1. 四.Android adb命令(持续更新...)
  2. 【工业串口和网络软件通讯平台(SuperIO)教程】一.通讯机制
  3. mysql怎么终止当前正在执行的sql语句
  4. Environment中针对的读写权限判断
  5. mysql 5.7压缩包安装笔记
  6. Xcode7如何添加pch文件
  7. 局域网内Linux服务器时间同步
  8. 为什么新建的管理员账号权限没有Administrator大?
  9. Godaddy主机从购买到开通的详细图文教程(2013年)
  10. nginx+redis实现session的共享
  11. 巧用php中的array_filter()函数去掉多维空值
  12. 【Android】屏幕尺寸的表示
  13. Python基础——2函数
  14. WEB UI基础八:链接跳转到标准的工单界面
  15. 不能够连接到主机(名称为localhost)上的MySQL服务”
  16. Android 倒计时按钮,倒计时发送短信验证码…
  17. 2017-2018-2 20165228 实验三《敏捷开发与XP实践》实验报告
  18. JS关闭窗口或JS关闭页面的几种代码!
  19. [paper]MaskFusion: Real-Time Recognition, Tracking and Reconstruction of Multiple Moving Objects
  20. C++模版详解(-)

热门文章

  1. 使用任务Task 简化异步编程
  2. Golang配置文件解析-oozgconf
  3. setting.xml配置详解
  4. idea中pom.xml关于oracle配置
  5. ras api win7 和 win xp 遍历时的不同
  6. js中的let和var
  7. (转)Stack Overflow 2016最新架构探秘
  8. Google的创新九原则(转)
  9. 于C#控制台传递参数和接收参数
  10. Linux内存初始化(一)