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 支持如下操作: 调整大小,裁 ...
随机推荐
- javascript创建对象(二)
原型模式:每创建一个函数都有一个prototype属性,它是一个指针,指向一个对象: 原型模式创建函数的方式: function Movie(){ }; Movie.prototype.name=&q ...
- 懒人神器之T4模板
最近遇到一个比较令人烦躁的问题,特别是对于我等懒癌末期者.实在难以忍受!具体问题是这样,这个项目是一个新的项目.使用EF框架来开发,那么在搭建架构时,当我们新加一个Entity时,就需要在每个层级添加 ...
- struts2 标签的使用之一 s:if(遍历中s:if如何用等)
http://blog.csdn.net/chinajust/article/details/3922718
- grub2 使用memdisk工具 启动任意iso
root@zhanghua-Inspiron-:/home/zhanghua# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/sda6 60G 12G 46G 21% / none ...
- SQL分页小Demo
SELECT @TotalCount=count(1) FROM TableA A WITH(NOLOCK) INNER JOIN TableB B WITH(NOLOCK) ON A.Id=B.Id ...
- JQuery slideToggle闪烁问题及解决办法
在使用slideToggle的时候,会出现在实现隐藏效果后闪烁一下在消失,找了很多原因,本以为是浏览器问题,后来发现是文档定义类型的问题... 原来页面的文档定义:<!DOCTYPE HTML ...
- 【转】Eclipse工具使用技巧总结
作者:Work Hard Work Smart 出处:http://www.cnblogs.com/linlf03/ 可参考http://www.codeceo.com/article/eclipse ...
- Android中使用WebView与JS交互全解析
1.概述首先,需要提出一个概念,那就是hybrid,主要意思就是native原生Android和h5混合开发.为什么要这样做呢?大家可以想象一下针对于同一个活动,如果使用纯native的开发方式,An ...
- Chromium网页Frame Tree创建过程分析
Chromium在加载一个网页之前,需要在Browser进程创建一个Frame Tree.Browser进程为网页创建了Frame Tree之后,再请求Render进程加载其内容.Frame ...
- 移动端Web开发如何处理横竖屏
<!Doctype html> <html> <head> <meta charset="utf-8"> <meta id=& ...