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 支持如下操作: 调整大小,裁 ...
随机推荐
- iOS 跳转到应用所在的App Store市场
代码入下 #import "ViewController.h" @interface ViewController ()<UIWebViewDelegate> @end ...
- 尝试封装自己的js库
学了js,用过jquery,然后想着让自己在js这一块有更深的提高,就想尝试着封装自己的js库,偶尔就添加自己想到的功能.有参考过其他大牛封装库的方法,不懂的地方也有借鉴过,但代码还是自己想,自己理解 ...
- Apache 禁止访问目录
1.打开apache配置文件httpd.conf 2.找到 <Directory /> Options Indexes AllowOverride None Order allow,den ...
- Linux进程和进程边界
1. 进程和线程 2. 手机操作系统的发展 3. 进程的地址空间边界 4. 进程边界的安全围栏: Crash的不可扩延性 5. 进程边界的安全围栏: 全局数据和服务的不可访问性 http://www. ...
- 用Django搭建个人博客—(3)
今日主题 定义博客文章和评论的的数据库定义 定义操作这几个Model的后台数据 User表 USER_STATUS = ( ('active', u'激活'), ('suspended', u'禁用' ...
- 2016022602 - redis安装和启动
redis安装 我使用的是ubuntu15.1,打开终端,输入命令:sudo apt-get install redis-server 将会在本机安装上redis. 启动redis 启动redis命令 ...
- iOS应用如何支持IPV6-b
果然是苹果打个哈欠,iOS行业内就得起一次风暴呀.自从5月初Apple明文规定所有开发者在6月1号以后提交新版本需要支持IPV6-Only的网络,大家便开始热火朝天的研究如何支持IPV6,以及应用中哪 ...
- Contest 20140928 密碼破譯 字符串hash
題意:詢問字符串指定區間循環節個數. 解法:有循環節長度a的字符串s[x,y]的性質:s[x,y-a]==s[x+a,y]由此寫一個雙hash就行了. #include<iostream> ...
- 使用astyle格式化代码
astyle是一款代码格式化工具,它的下载地址是:http://sourceforge.net/projects/astyle 一.基本命令 astyle --style=ansi main.cs ( ...
- SQL2000和SQL2005和SQL2008同时安装问题
原文:SQL2000和SQL2005和SQL2008同时安装问题 SQL2000和SQL2005和SQL2008同时安装问题 1,因为SQL2000安装过程中无法修改实例名称,故安装过程中必须先安装S ...