关于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图形处理的更多相关文章

  1. 初探canvas

    canvas是html5新增的一个专用于图形处理的标签,利用canvas可以实现大部分图形操作canvas的一些基本操作与其他图形编程工具类似,包含:各种形状的边框.路径绘制和填充,画布属性调整,样式 ...

  2. MFC 窗口重绘问题

    在客户区画直线等图形时, 发现当其最小化或者其他窗口遮挡时,出现窗口重绘,而将原来绘制的图形删除,上网上搜索知道,绘制图形的代码必须放置在Ondraw函数中,才能避免重绘时图形消失(因为一直在响应WM ...

  3. 【MFC】MFC绘图不闪烁——双缓冲技术

    MFC绘图不闪烁——双缓冲技术[转] 2010-04-30 09:33:33|  分类: VC|举报|字号 订阅 [转自:http://blog.163.com/yuanlong_zheng@126/ ...

  4. MFC中的双缓冲技术(解决绘图闪烁问题)

    转自 MFC绘图不闪烁——双缓冲技术[转] 在VC/MFC用CDC绘图时,频繁的刷新,屏幕会出现闪烁的现象,CPU时间占用率相当高,绘图效率极低,很容易出现程序崩溃. 所谓双缓冲技术,下面是百度百科的 ...

  5. vs2010静态链接MFC库报链接错误

    由于需要将MFC程序在其它电脑上运行,所以需要将动态链接的MFC改成静态链接,本以为很简单,没想到链接的时候出现下面的链接错误: uafxcw.lib(afxmem.obj) : error LNK2 ...

  6. MFC中成员变量的声明顺序与析构顺序

    第一次用博客,第一篇随笔,就写今天遇到的一个问题吧. 在VS2008的MFC对话框程序,窗口成员变量的声明顺序与其析构顺序相反,即,先声明的变量后析构,后声明的变量先析构.未在其他模式下测试. cla ...

  7. VC中的MFC到底是什么?

    1. 微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows API ...

  8. MFC&Halcon之实时视频监控

    上一篇实现了在MFC的窗体内显示图片,本篇介绍如何在MFC窗体内实时显示摄像头的影像. 要实现的功能是点击一个“开始”按钮,可以显示影像,再点击“停止”按钮,可以停止显示. 因为实时显示影像需要在一个 ...

  9. ImageSharp .NET Core跨平台图形处理库

    ImageSharp 是支持.NET Core跨平台图形处理库,ImageSharp是ImageProcessor 的.NET Core跨平台实现. ImageSharp 支持如下操作: 调整大小,裁 ...

随机推荐

  1. Child&ElementChild

    关于firstChild&firstElementChild及其同类属性使用,同时分析不同浏览器下child的包含的节点差异 <head> <meta charset=&qu ...

  2. C蛮的全栈之路-node篇(二) 实战一:自动发博客

    目录 C蛮的全栈之路-序章 技术栈选择与全栈工程师C蛮的全栈之路-node篇(一) 环境布置C蛮的全栈之路-node篇(二) 实战一:自动发博客 ---------------- 我是分割线 ---- ...

  3. hdu_1003_Max Sum

    Max Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su ...

  4. Apache Virtual Include

    2.目录支持includes:     <Directory   />             Options   None             //不支持includes       ...

  5. 网站开发常用jQuery插件总结(九)侧边栏插件pageslide

    一.pageslide插件功能 实现现实隐藏侧边栏的功能.插件可以读取另个一html,也可以是当前页面中的元素. 二.pageslide官方地址 http://srobbin.com/jquery-p ...

  6. 如何在Webstorm中添加js库 (青瓷H5游戏引擎)

    js等动态语言编码最大的缺点就是没有智能补全代码,webstorm做到了. qici_engine作为开发使用的库,如果能智能解析成提示再好不过了,经测试80%左右都有提示,已经很好了. 其他js库同 ...

  7. OnClose()和 OnDestroy()

    OnClose()和 OnDestroy() 基于对话框的MFC程序,发现每次程序退出时,托盘的小图标不能自动消失,鼠标移上去之后才能消失,比较不爽. 后来发现我删除这个图标的代码是在自己重写的OnC ...

  8. URL encode 与 URL decode 的C语言实现

    转载自:http://blog.csdn.net/langeldep/article/details/6264058 本文代码为从PHP代码中修改而来,只保留了2个函数. int php_url_de ...

  9. IOS Quartz 各种绘制图形用法---实现画图片、写文字、画线、椭圆、矩形、棱形等

    // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affec ...

  10. MySQL在创建存储过程的时候,语法正确却提示You have an error in your SQL syntax

    我在使用MySQL工具编写MySQL存储过程的时候,明明语法正确,但是却一直提示You have an error in your SQL syntax. 比如下面一段代码 CREATE PROCED ...