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提供的一种不错的设计,它将数据的处理和显示分开来,这样更便于我们对程序的维护和扩展. 文档 文档对象用于管理和维护数据,包括保存数据.取出数据以及 ...
随机推荐
- memcached 下载安装
wget http://memcached.org/latest tar -zxvf memcached-1.x.x.tar.gz cd memcached-1.x.x ./configure &am ...
- 腾讯云-搭建 WordPress 个人博客
搭建 WordPress 个人博客 准备 LNMP 环境 任务时间:30min ~ 60min LNMP 是 Linux.Nginx.MySQL 和 PHP 的缩写,是 WordPress 博客系统依 ...
- history设置时间戳
Linux查看历史命令,很关键!history,默认没有时间戳... 01.设置系统环境变量 echo 'export HISTTIMEFORMAT="%F %T `whoami` &qu ...
- OpenWrt中对USB文件系统的操作, 以及读写性能测试
参考 http://h-wrt.com/en/doc/flash 1. 查看usb存储在启动日志中的信息 # dmesg [ 5.720000] usbcore: registered new int ...
- Apache Hadoop 3.0新版本介绍及未来发展方向
过去十年,Apache Hadoop从无到有,从理论概念演变到如今支撑起若干全球最大的生产集群.接下来的十年,Hadoop将继续壮大,并发展支撑新一轮的更大规模.高效和稳定的集群. 我们此次将向大家全 ...
- CameraManager与CameraDevice与ICameraService的相应关系
Camera2 AP Framewok中有三个比較重要的组件:CameraManager.CameraDevice.ICameraService,他们的相应关系例如以下: 一个Context中会有一个 ...
- 如何判断微信内置浏览器(JS & PHP)
转自:http://blog.wpjam.com/m/is_weixin/ 为什么要进行判断呢?answer:微信授权登录,微信支付都可以 微信内置浏览器的 User Agent 如何判断微信内置浏览 ...
- map reduce相关程序
Test_1.java /** * Hadoop网络课程模板程序 * 编写者:James */ import java.io.IOException; import java.text.DateFor ...
- jmeter ---常用字符串相关函数
主要的函数如下: 1.将字符串转为大写或小写: ${__lowercase(Hello,)} ${__uppercase(Hello,)}2.生成字符串: __RandomString函数 3.取 ...
- 音频特征提取——pyAudioAnalysis工具包
作者:桂. 时间:2017-05-04 18:31:09 链接:http://www.cnblogs.com/xingshansi/p/6806637.html 前言 语音识别等应用离不开音频特征的 ...