卷二:图形编程MFC第1篇:画笔、画刷、
1.MFC文件创建:(1)创建基于对话框的项目,可以直接拖组件;
(2)创建单个文档的项目,所有的时间自己编写。
2.常用画图对象学习
(1)画线:①项目->类向导->选择view类->添加消息->添加鼠标落下OnLButtonDown方法;
②同上添加鼠标松开OnLButtonUp方法;
③同上方法,选择在view类中添加CPoint m_pOrient; 表示鼠标单击时的坐标;
class Cm4View : public CView
{//XXX 系统其余代码
private:CPoint m_pOrigin; //CPoint是坐标类
}void Cm4View::OnLButtonDown(UINT nFlags, CPoint point)
{c_pOrient = point; //记录按下点坐标//MessageBox(_T("欢迎")); CView::OnLButtonDown(nFlags, point); //系统代码
}void Cm4View::OnLButtonUp(UINT nFlags, CPoint point)
{CDC *pDC = GetDC(); //获得设备上下文,才能使用设备pDC->MoveTo(c_pOrient); //移到起点 //创建画笔对象,注意用完之后换回原来的笔CPen pen = (PS_SOLID,1,RGB(255,0,0)); //PS_DASH虚线、PS_DOT点CPen *pOldPen = pDC->SelectObject(&pen); //selectObject返回参数的原来类型,保存旧笔pDC.LineTo(point); //下去的时候,一直会划线pDC.SelectObject(pOldPen); //换回原来的画笔ReleaseDC(pDC); //释放设备CView::OnLButtonUp(nFlags, point); //系统自动代码
}
(2) 画矩形
void Cm4View::OnLButtonDown(UINT nFlags, CPoint point)
{c_pOrient = point; //记录按下点坐标CView::OnLButtonDown(nFlags, point); //系统代码
}void Cm4View::OnLButtonUp(UINT nFlags, CPoint point)
{CClientDC dc(this); //获得设备上下文,局部变量,不需要释放// 创建画刷,画透明矩形CBrush *brush = CBrush::FormHundle((HBRUSH)GetStockObject(NULL_BRUSH)); //获得系统透明画刷,返回指针CBrush *oldBrush = dc.SelectObject(brush);dc.Rectangle(c_pOrient,point); //设备从鼠标落下处到松开画透明矩形dc.SelectObject(oldBrush);CBrush brush(RGB(0,255,0)); //新画刷dc.FillRect(CRect(c_pOrient,point),&brush); //创建带颜色填充矩形CView::OnLButtonUp(nFlags, point); //系统自动代码
}
(3)画扇形,划线跟着鼠标走
class Cm4View : public CView
{//XXX 系统其余代码
private:CPoint m_pOrigin; //CPoint是坐标类bool m_bDraw = false; //鼠标是否点击
}
void Cm4View::OnLButtonDown(UINT nFlags, CPoint point)
{c_pOrient = point; //记录按下点坐标m_bDraw = ! m_bDraw;CView::OnLButtonDown(nFlags, point); //系统代码
}void Cm4View::OnMouseMove(UINT nFlags, CPoint point) //添加鼠标移动事件
{CClientDC dc(this); //获得设备上下文,局部变量,不需要释放CPen pen(PS_SOLID, 1, RGB(0, 255, 255));CPen* pOldPen = dc.SelectObject(&pen); //换画笔线的颜色、类型if(m_bDraw) {dc.MoveTo(m_pOrigin); //移到第一个点dc.LineTo(point); //随时point划线m_pOrigin = point; //一定更新起始点}dc.SelectObject(pOldPen);CView::OnLButtonUp(nFlags, point); //系统自动代码
}
(4)画椭圆、文字
void Cm4View::OnLButtonDown(UINT nFlags, CPoint point)
{c_pOrient = point; //记录按下点坐标CView::OnLButtonDown(nFlags, point); //系统代码
}void Cm4View::OnLButtonUp(UINT nFlags, CPoint point)
{CClientDC dc(this); //获得设备上下文,局部变量,不需要释放CPen pen(PS_DASH, 1, RGB(0, 0, 255));CPen* pOldpen = dc.SelectObject(&pen);dc.Eclipse(CRect(c_pOrient,point)); //类似矩形画椭圆dc.SelectObject(pOldpen);CFront front; //创建字体对象CString str(_T("Hello world!"));front.CreatePointFont(200,"华文楷体"); //20磅CFront *oldFont = dc.SelectObject(&font);dc.SetTextColor(RGB(0,255,0));dc.TextOut(ponit.x,point.y,str,str.GetLength()); //输出文字,四个参数dc.SelectFont(oldFont); CView::OnLButtonUp(nFlags, point); //系统自动代码
}
卷二:图形编程MFC第1篇:画笔、画刷、相关推荐
- Paint 图形绘制 折线 点 弧线绘制 画笔 画刷14.4.20
// Zuoye1.cpp : Defines the entry point for the application. //#include "stdafx.h" #includ ...
- [游戏模版3] Win32 画笔 画刷 图形
>_<:introduce the functions of define\create\use pen and brush to draw all kinds of line and s ...
- VS2019MFC进行无预览简单绘图:直线,画笔,画刷,矩形,椭圆
1.MFC常用绘图函数 CreatePen 创建画笔:属性:线型.宽度.颜色 CreateSolidBrush 创建画刷,填充封闭图形 SetPixel 绘制像素点,返回RGB值 SetPixelV ...
- CSharp代码示例每日一讲: 在GDI+中使用画笔和画刷
CSharp代码示例每日一讲,为刚刚学习编程的人准备,利用最简单的代码介绍CSharp编程知识! 画笔和画刷是图形应用中最常用的两种对象.笔用于绘制图形对象的轮廓,如线条和曲线;刷子是用来填充图形对象 ...
- VS2010/MFC编程入门之五十(图形图像:GDI对象之画笔CPen)
上一节中鸡啄米讲了CDC类及其屏幕绘图函数,本节的主要内容是GDI对象之画笔CPen. GDI对象 在MFC中,CGdiObject类是GDI对象的基类,通过查阅MSDN我们可以看到,CGdiObje ...
- MFC基本图形的绘制(一)设备环境类CDC、画笔和画刷
Windows的GDI(设备图形接口),提供了绘图的基本工具,如:画点.线.多边形.位图以及文本输出等.MFC的设备环境类CDC封装了全部的绘图函数,使得绘制的图形即可以显示,又可以打印. 概述 Vi ...
- python的交互式解释器_python3.4.1解释器python交互式图形编程实例(三)
本文实例为大家分享了python交互式图形编程实例的第三部代码,供大家参考,具体内容如下 #!/usr/bin/env python3 # -*- coding: utf-8 -*- #时钟 from ...
- python图形化编程实例,python交互式图形编程实例(三)
本文实例为大家分享了python交互式图形编程实例的第三部代码,供大家参考,具体内容如下 #!/usr/bin/env python3 # -*- coding: utf-8 -*- #时钟 from ...
- Python创意编程100例turtle篇题目串烧
海龟变身孙悟空,迷宫寻宝讲相声! 哪吒妙用孙子兵法,世界名人尽赞之.忍者品德好,遇见合金弹头主角时怦然心动了,赠送了他花框音乐盒. 生机勃勃的农场孕育了漂亮的二叉分形树.超级玛丽玩起坦克大战还邀请解& ...
最新文章
- 如何在 SAP 电商云 Spartacus UI 里访问 CMS Component data 数据
- rxjs pipe和filter组合的一个实际例子的单步调试
- 【.NET Core项目实战-统一认证平台】第七章 网关篇-自定义客户端限流
- HashMap两种遍历数据的方式
- linux系统的安装程序,Linux系统安装
- 互联网寒冬!“996”为什么还没实行?我还等着早点下班呢!
- Leetcode--128. 最长连续序列
- 回来不是为了留下,而是为了重新出发 -- 生死阅读影评
- c#利用泛型集合,为自己偷偷懒。
- apt-get install的默认安装路径是什么
- python不同版本切换_Python版本切换,python,的
- Java实现学生管理系统代码
- 计算机键盘驱动,修改键盘驱动程序_基本计算机知识_IT /计算机_信息
- Java实现视频编码格式转换(转libx264编码格式)
- Java中继承thread类与实现Runnable接口的区别(转)
- 简单做份西红柿炒蛋778
- LiteFlowNet3:解决对应歧义以获得更准确的光流估计
- ObiFruid创建流体,ObiFruid学习笔记
- mybatis 自定义拦截器
- MIMICIV2.0版本Concepts自动生成