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 支持如下操作: 调整大小,裁 ...
随机推荐
- Köln-keith jarrett
在火车上遇到一男生,带着他弟弟.他弟弟跑来跑去的,他就安稳地坐在下铺看书,不知道是哪种语言. 我们都是在北京下车. 第二天在王府井吃饭,姐姐带我吃西餐.我又看到他,跟一个阿姨一起吃饭. 吃饭的时候姐姐 ...
- 寒假ACM训练(二)
放了假的效率明显就低起来,最近也一直在学习Ubuntu,所以一直等到今天才写. 还是在用PC. 真的十分郁闷这个LC-Display,其实从思路上是有很多.不过我最后把他当成8字,分成了七笔. 一直W ...
- Fedora 21 中添加及更新源的命令
原文: Fedora 21 中添加及更新源的命令 fedora的软件源信息文件(*.repo)都是放在 /etc/yum.repos.d 目录下的.可以通过# ls -l /etc/yum.repos ...
- jquery live()只支持css选择器
昨天在处理过keypress键盘事件后,今天要把用户在页面上动态添加的字段条目加上删除功能,就是在每个字段后面加上一个漂亮的小按钮,当用户点击这个按钮,相应的条目就被从数据库中删除. 为了实现这种功能 ...
- 当 IDENTITY_INSERT 设置为 OFF 时,不能向表 中的标识列插入显式值错误的解决方法
一个主键.两个外键,把两个外键改为非空就行了. CREATE TABLE [dbo].[User_Compare]( ,) NOT NULL, [UserId] [int] NOT NULL, [Pa ...
- Django 入门
Django 入门 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模型,即模型M,视图V和控制器C.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容 ...
- 初级ant的学习
一.安装ant 到官方主页http://ant.apache.org下载新版(目前为Ant1.8.1)的ant,得到的是一个apache-ant-1.8.1-bin.zip的压缩包.将其解压到你的硬盘 ...
- 【测试】解决loadrunner11无法运行负载测试
问题: LoadRunner11版,录制完脚本,准备运行时提示‘ loadrunner controller 无法创建 vuser 确保您的 load generator ’, 脚本已经录好,但是运行 ...
- Cow Marathon
poj1985:http://poj.org/problem?id=1985 题意:就是树的直径. 题解:直接DFS即可. #include<iostream> #include<c ...
- -AC自动机-题表
2016-07-13 09:59:42