MFC文档(SDI)应用:画图程序(画圆、画线、鼠标事件)
要求
1、 在客户区输出一条顺时针45度的直线、一个正方形、一个大圆;
2、 在客户区输出一个图标;
3、 当按下鼠标左键时,将以鼠标坐标为圆心画直径为20个单位的小圆。
- 首先设置两个变量,用来保存颜色和线宽。这样就但是通过程序设置圆或者线条的颜色和宽度了。(加入在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
MFC文档(SDI)应用:画图程序(画圆、画线、鼠标事件)的更多相关文章
- MFC文档视图结构学习笔记
文档/视图概述 为了统一和简化数据处理方法,Microsoft公司在MFC中提出了文档/视图结构的概念,其产品Word就是典型的文档/视图结构应用程序 MFC通过其文档类和视图类提供了大量有关数据处理 ...
- Open Cascade创建自己的MFC文档程序
项目初始设置在Visual studio中创建一个单文档MFC项目(本例以MFCTest为名称): 在项目属性的VC++页面设置包含目录.库目录,在链接器的输入中添加OCC库目录下的所有.lib文件名 ...
- 理解MFC 文档、视图、框架[转]
理解文档/视图框架 出处.雷神 了解文档和视图的相互作用关系是编写MFC程序的基本功.但是MFC的应用程序框架把文档和视图之间 ...
- 深入分析MFC文档视图结构(项目实践)
k_eckel:http://www.mscenter.edu.cn/blog/k_eckel 文档视图结构(Document/View Architecture)是MFC的精髓,也是Observer ...
- VC++环境下单文档SDI与OpenGL多视图分割窗口的实现-类似3DMAX的主界面
本文主要讲述如何在VC++环境下实现单文档SDI与OpenGL多视图分割窗口,最终的界面类似3DMAX的主界面.首先给出我实现的效果图: 整个实现过程网络上有很多零散的博文,请各位自行搜索,在基于对话 ...
- 操作系统实验 windows编程多线程 生产者消费者问题 画圆画方(内置bug版)
实验3:随便写的 #include <windows.h> #include <string> #include <stdio.h> #pragma warning ...
- 基于MFC的单文档,多文档,对话框应用程序
从类的角度区分: 基于对话框(3个类): CAboutDlg 程序名App 程序名Dlg 单文档(5个类): CAboutDlg CMainFrame 程序名App 程序名Doc 程序名View 多文 ...
- MFC 修改 单文档 SDI 窗体 标题
程序主窗口标题栏的一般形式为: 文档标题—主窗口标题 1.修改文档标题 修改CExamDoc::onNewDocument()函数为: BOOL CExamDoc::OnNewDocument() { ...
- MFC文档、视图和框架
文档.视图.框架 文档/视图结构是MFC提供的一种不错的设计,它将数据的处理和显示分开来,这样更便于我们对程序的维护和扩展. 文档 文档对象用于管理和维护数据,包括保存数据.取出数据以及 ...
随机推荐
- 关于PHP中的opcode
简介 1.当Zend engine解释器完成对脚本代码的分析后,便将它们生成可以直接运行的中间代码,也称为操作码(Operate Code,opcode),opcode是一个四元组,(opcode, ...
- zookeeper与kafka安装部署及java环境搭建(发布订阅模式)
1. ZooKeeper安装部署 本文在一台机器上模拟3个zk server的集群安装. 1.1. 创建目录.解压 cd /usr/ #创建项目目录 mkdir zookeeper cd zookee ...
- 概率校准Probability Calibration
在分类问题中,我们有时不仅仅需要给测试样本打上类别标签,也需要给出一个"置信度"来表示该样本属于此类别的可能性. 然而,有的分类器只能直接打上类别标签没法给出置信度.概率校准就是用 ...
- PowerDesigner 的常用方法
http://www.cnblogs.com/studyzy/archive/2008/01/23/1050194.html PowerDesigner 的常用方法 修改外键命名规则 选择Databa ...
- Android学习系列(18)--App工程结构搭建
本文算是一篇漫谈,谈一谈关于Android开发中工程初始化的时候如何在初期我们就能搭建一个好的架构. 关于android架构,因为手机的限制,目前我觉得也确实没什么大谈特谈的,但是从开发的 ...
- CentOS上搭建Nginx + Mono 运行 asp.net[转]
http://www.linuxdot.net/ http://www.cnblogs.com/wander1129/archive/2011/12/16/mono.html 安装步骤: 一.获取开源 ...
- AP_创建标准发票后会计科目的变化(概念)
2014-06-04 Created By BaoXinjian 1. 创建Invoice,并查看所创建的科目
- PO_已交货PO进行退货(流程)
2014-06-04 Created By BaoXinjian
- Java并发和多线程:序
近期,和不少公司的"大牛"聊了聊,当中非常多是关于"并发和多线程"."系统架构"."分布式"等方面内容的.不少问题, ...
- cocos2dx 3.1从零学习(五)——动画
动画是游戏中最重要的表现部分,本篇仅仅是初步学习大部分动画的用法.没有什么原理性的东西,可是样例有非常多,假设有不熟的地方要练一下. 特别是Spawn和Sequence的组合使用,什么时候使用Spaw ...