MFC图形处理
关于MFC绘图功能入门
创建Dialog based MFC工程 打开Resource view 下的Dialog主界面
添加Picture control控件,为此控件添加CStatic的control变量m_pic
自创一个函数paint(); 用来在划定的Picture 控件中绘图;
函数定义如下 , 一个参数类型为CDC另一个为CRect
void project_name::paint(CDC *pDC, CRect &rect) { }
函数的调用方法:
CRect rect;
m_pic.GetClientRect(&rect);
paint(m_pic.GetDC(),rect);
paint函数具体内容:
void project_name::paint(CDC *pCD, CRect &rect) {
//画矩形或者椭圆:
//矩形和椭圆的参数类似Ellipse(x1,y1,x2,y2),Rectangle(x1,y1,x2,y2)
//(x1,y1)代表所画区域左上角坐标,(x2,y2)代表右上角坐标
CBrush Brush; //创建画刷;
CBrush *PreBrush; //创建旧画刷指针,用来消除
//方法1:
Brush.CreateSolidBrush(RGB(,,)); //设定画刷颜色和属性
PreBrush=pDC->SelectObject(&Brush); //选定使用此画刷
pDC->Rectangle(CRect); //使用此画刷画矩形
pDC->SelectObject(PreBrush); //放弃正在使用的画刷使用之前的
Brush.DeleteObject();
方法2:
Brush.CreateSolidBrush(RGB(,,));
pDC->BeginPath();
pDC->Ellipse(,,,);
pDC->EndPath();
pDC->SelectObject(&Brush);
pDC->FillPath();
//画完在染色
画线:
CPen Pen;
CPen PrePen;
Pen.CreatePen(PS_SOLID, , RGB(,,)); //创建画笔
PrePen=pDC->SelectObject(&Pen);
pDC->MoveTo(x0,y0); //将画笔移动到指定坐标
pDC->LineTo(x1,y1); //从当前坐标画到指定坐标
pDC->SelectObject(&Pen); //销毁画笔
Pen.DelectObject();
//如果画刷或者画笔不销毁的话,再次添加画刷或画笔效果会混合在一起
}
将控件所画内容清空:
GetDlgItem(m_pic)->ShowWindow(FALSE);
GetDlgItem(m_pic)->ShowWindow(TRUE);
相关知识仍待补充。。。。
MFC图形处理的更多相关文章
- 初探canvas
canvas是html5新增的一个专用于图形处理的标签,利用canvas可以实现大部分图形操作canvas的一些基本操作与其他图形编程工具类似,包含:各种形状的边框.路径绘制和填充,画布属性调整,样式 ...
- MFC 窗口重绘问题
在客户区画直线等图形时, 发现当其最小化或者其他窗口遮挡时,出现窗口重绘,而将原来绘制的图形删除,上网上搜索知道,绘制图形的代码必须放置在Ondraw函数中,才能避免重绘时图形消失(因为一直在响应WM ...
- 【MFC】MFC绘图不闪烁——双缓冲技术
MFC绘图不闪烁——双缓冲技术[转] 2010-04-30 09:33:33| 分类: VC|举报|字号 订阅 [转自:http://blog.163.com/yuanlong_zheng@126/ ...
- MFC中的双缓冲技术(解决绘图闪烁问题)
转自 MFC绘图不闪烁——双缓冲技术[转] 在VC/MFC用CDC绘图时,频繁的刷新,屏幕会出现闪烁的现象,CPU时间占用率相当高,绘图效率极低,很容易出现程序崩溃. 所谓双缓冲技术,下面是百度百科的 ...
- vs2010静态链接MFC库报链接错误
由于需要将MFC程序在其它电脑上运行,所以需要将动态链接的MFC改成静态链接,本以为很简单,没想到链接的时候出现下面的链接错误: uafxcw.lib(afxmem.obj) : error LNK2 ...
- MFC中成员变量的声明顺序与析构顺序
第一次用博客,第一篇随笔,就写今天遇到的一个问题吧. 在VS2008的MFC对话框程序,窗口成员变量的声明顺序与其析构顺序相反,即,先声明的变量后析构,后声明的变量先析构.未在其他模式下测试. cla ...
- VC中的MFC到底是什么?
1. 微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows API ...
- MFC&Halcon之实时视频监控
上一篇实现了在MFC的窗体内显示图片,本篇介绍如何在MFC窗体内实时显示摄像头的影像. 要实现的功能是点击一个“开始”按钮,可以显示影像,再点击“停止”按钮,可以停止显示. 因为实时显示影像需要在一个 ...
- ImageSharp .NET Core跨平台图形处理库
ImageSharp 是支持.NET Core跨平台图形处理库,ImageSharp是ImageProcessor 的.NET Core跨平台实现. ImageSharp 支持如下操作: 调整大小,裁 ...
随机推荐
- RESTful 架构风格概述
http://blog.igevin.info/posts/restful-architecture-in-general/(非常好) http://blog.igevin.info/posts/re ...
- 枚举N行N列的自然数列
数据库环境:SQL SERVER 2005 现有一个需求,要枚举1-50个自然数,分10行5列展示.如图,
- CoreAnimation6-基于定时器的动画和性能调优
基于定时器的动画 定时帧 动画看起来是用来显示一段连续的运动过程,但实际上当在固定位置上展示像素的时候并不能做到这一点.一般来说这种显示都无法做到连续的移动,能做的仅仅是足够快地展示一系列静态图片,只 ...
- /etc/fstab一些信息
[root@shine shine]# vim /etc/fstab ## /etc/fstab# Created by anaconda on Thu May 9 13:29:35 2013## A ...
- 单页应用引擎的写法artTemplate
使用到了ba-haschange.js <script src="../style/js/plugin/template-native-debug.js"></s ...
- Express使用html模板
express默认使用jade模板,可以配置让其支持使用ejs或html模板. 1. 安装ejs 在项目根目录安装ejs. npm install ejs 2.引入ejs var ejs = requ ...
- javascript动态添加效果
<script type="text/javascript"> window.onload=function(){ $("#ch").click(f ...
- 从string.size()和string.length()聊到长度的问题和一个关于数据结构定义的技巧
最近工作中要查看一下string的长度,然后忘了是哪个函数,所以去网上搜了一搜,决定把网上学的和其他的一些有关长度的东西在这里汇总一下, 然后就有了此帖. string 是从c语言的char数组的概念 ...
- 关于 Log4Net
Log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件.数据库.EventLog等),日志就是程序的黑匣子,可以通过日志查看系统的运行过程,从而发现系统的问题.日志的作用:将运 ...
- [CF Round #294 div2] E. A and B and Lecture Rooms 【树上倍增】
题目链接:E. A and B and Lecture Rooms 题目大意 给定一颗节点数10^5的树,有10^5个询问,每次询问树上到xi, yi这两个点距离相等的点有多少个. 题目分析 若 x= ...