Visual Studio 2015下MFC画图个人笔记
来源:互联网 发布:Mac怎么安装压缩文件 编辑:程序博客网 时间:2024/05/20 17:59
直线的绘制与画刷的使用
程序效果:在View视图的某一点出鼠标点击左键并按住,然后拖动鼠标直至松开鼠标左键。在View视图将获得一条由鼠标左键按下处到鼠标左键松开处的一条直线段。
1.新建MFC单文档程序,此处程序名Draw
2.为CDrawView添加成员变量,用于记录线段的起点
在类视图下右键单击CDrawView,选择“添加”->“添加变量”,访问选择“private”,变量类型为“CPoint”,变量名此处为m_ptStartPoint。
3. 使用类向导为CDrawView添加消息响应函数
为CDrawView分别添加鼠标按下与鼠标松开的消息响应函数,用于相应消息的处理。在类视图下右键单击CDrawView,选择“类向导”,选择“消息”栏,选中“WM_LBUTTONDOWN”,再选择“添加处理程序”,使用同样的方法添加“WM_LBUTTONUP”。
4.编辑消息响应函数
在上图中点击“编辑代码”可跳转至对应的消息响应函数。或在DrawView.cpp中找到这两个的消息响应函数。在OnLButtonDown中添加以下代码,用于保存线段的起始点。
void CDrawView::OnLButtonDown(UINT nFlags, CPoint point){// TODO: 在此添加消息处理程序代码和/或调用默认值m_ptStart = point;CView::OnLButtonDown(nFlags, point);}
在OnLButtonUp中添加以下代码,用于线段的绘制。
// 画线方式一HDC hdc;//使用全局函数获取View类窗口句柄hdc = ::GetDC(m_hWnd);MoveToEx(hdc, m_ptStart.x, m_ptStart.y, NULL);LineTo(hdc, point.x, point.y);::ReleaseDC(m_hWnd, hdc);// 画线方式二CDC *pDC = GetDC();pDC->MoveTo(m_ptStart);pDC->LineTo(point);ReleaseDC(pDC);// 画线方式三 使用CClientDC,无需使用GetDC()与ReleaseDC()CPen pen(PS_SOLID, 1, RGB(255, 0, 0));CClientDC clientDC(this);// 函数SelectObject(Cpen *pen)的返回值为被替换画笔对象的指针CPen *pOldPen = clientDC.SelectObject(&pen);clientDC.MoveTo(m_ptStart);clientDC.LineTo(point);clientDC.SelectObject(pOldPen);
// 使用画刷填充矩形区域//CBrush brush(RGB(255, 0, 0));//CClientDC clientDC(this);//clientDC.FillRect(CRect(m_ptStart, point), &brush);
使用画刷加载位图,在OnLButtonUp中添加以下代码:
/** * 使用画刷加载位图 * 鼠标右键项目名————“添加”————“资源”————“Bitmap”————“新建” * 使用LoadBitmap()函数加载位图 *///CBitmap bitmap;//bitmap.LoadBitmapW(IDB_BITMAP1);//CBrush brush(&bitmap);//CClientDC clientDC(this);//clientDC.FillRect(CRect(m_ptStart, point), &brush);
阅读全文
0 0
- Visual Studio 2015下MFC画图个人笔记
- mfc笔记-画图工具
- MFC笔记之画图
- mfc下画图
- MFC下画图
- 个人免费!Visual Studio 2015官方下载
- MFC(Visual Studio)
- Visual Studio 2015 使用笔记
- 在 Visual Studio 2005 下配置 OpenCV 环境[MFC 开发者]
- 在 Visual Studio 2005 下配置 OpenCV 环境[MFC 开发者]
- Visual Studio 下MFC的创建过程解析
- 在Visual Studio 2013下利用MFC框架配置OpenGL
- Visual Studio MFC 对话框 重载
- Visual Studio 2013 MFC 编程
- Visual Studio 2012 - Visual C++ MFC 类
- Visual Studio 2012 - Visual C++ MFC 类
- Visual Studio 2012 - Visual C++ MFC 类
- Visual Studio 2012 - Visual C++ MFC 类
- zabbix 监控windows 磁盘io
- fedora26下安装和配置openldap(2)
- 如何用easyrecovery恢复已删除的文件
- 10.25_2
- 服务端返回List<Map<String,Object>>数据,$http 无法接收
- Visual Studio 2015下MFC画图个人笔记
- 使用Laravel发送账号激活邮件
- 面试可能致命的细节,你知道么
- Runtime.getRuntime().exec()方法的使用
- ODOO 代码修改后,如何生效
- 邋遢有理!科学家发现“脏一点”抵抗力更强大
- RabbitMQ(part2轮流发消息到不同消费者)----Work Queues
- TextView自动适应一行显示和设置间距
- 数据存储(无数据库版)之三:多媒体文件抽取