- 3
- 0
- 约3.38千字
- 约 26页
- 2017-01-21 发布于辽宁
- 举报
第四讲简单绘图与文本编辑.ppt
第四章 简单绘图 4.1 MFC消息映射机制 怎样在程序中画一条最简单的直线? WM_LBUTTONDOWN——起点 WM_LBUTTONUP——终点 两点连成一线 两种建立消息响应函数的方法 ClassView标签页上,右键单击类名,【Add Windows Message Handler…】 ClassWizard 4.1.1 ClassWizard Messege Maps选项卡 Member Variables选项卡 Automation选项卡:允许用户加入方法或属性; ActiveX Events选项卡:允许用户加入事件以支持ActiveX控件; Class Info 选项卡:用于观察当前工程中的类信息。 4.1.1 ClassWizard void CDrawView::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default MessageBox(View Clicked); CView::OnLButtonDown(nFlags, point); } 为什么在View类中添加? MainFrame类可以吗? 增加了消息响应函数后,源文件中会增加三处代码:1、消息响应函数原型(头文件)2、消息映射宏(源文件)3、消息响应函数定义(源文件) 消息响应的过程:1、到头文件中寻找是否有消息响应函数原型;2、到源文件中看是否有消息映射宏;3、调用消息响应函数。 在消息响应函数OnButtonDown中保存起点信息。在消息响应函数OnButtonUp中绘制线条。 几种画线方法: 第五章 文本编程 5.1 插入符(文本插入符) 5.1 插入符(文本插入符) * * 第四讲 简单绘图与文本编辑 4.1.1 ClassWizard 视窗口始终覆盖在框架窗口之上,所有窗口只能由视类窗口捕捉。 函数的删除:ClassView选项卡上用鼠标右键单击函数名,选择【Delete】。 4.1.2 消息映射机制 4.1.2 消息映射机制 4.2 绘制线条 4.2 绘制线条 HDC CDC CClientDC CWindowDC 4.2.1 利用SDK全局函数实现画线功能 // 首先获得窗口的设备描述表 HDC hdc; hdc = ::GetDC(m_hWnd); //移动到线条的起点 MoveToEx(hdc, m_ptOrigin.x, m_ptOrigin.y, NULL); //画线 LineTo(hdc, point.x, point.y); //释放设备描述表 ::ReleaseDC(m_hWnd,hdc); 4.2.2 利用MFC的CDC类实现画线功能 CDC* pDC = GetDC(); pDC-MoveTo(m_ptOrigin); pDC-LineTo(point); ReleaseDC(pDC); 4.2.3 利用MFC的CClientDC类 实现画线功能 CClientDC dc(this); dc.MoveTo(m_ptOrigin); dc.LineTo(point); CClientDC类的对象在生命周期结束时,会自动释放其所占用的设备资源。 4.2.4 利用MFC的CWindowDC类 实现画线功能 CWindowDC dc(this); dc.MoveTo(m_ptOrigin); dc.LineTo(point); 4.2.5 绘制彩色线条 CPen pen(PS_SOLID,1,RGB(255,0,0)); CClientDC dc(this); CPen* pOldPen = dc.SelectObject(pen); dc.MoveTo(m_ptOrigin); dc.LineTo(point); dc.SelectObject(pOldPen); 4.3 使用画刷绘图 //创建一个红色画刷 CBrush brush(RGB(255,0,0)); //创建并获得设备描述表 CClientDC dc(this); //利用红色画刷填充鼠标拖曳过程中形成的矩形区域 dc.FillRect(CRect(m_ptOrigin,point),brush); 4.4 绘制连续线条 设置BOOL型变量m_bDraw,判断鼠标是否按下; 构造函数中进行初始化: m_bDraw = FALSE; OnLButtonDown函数中: m_bDraw = TRUE; OnLButtonUp
您可能关注的文档
最近下载
- BYK技术手册_润湿分散剂.pdf VIP
- 中职语文高教版2023基础模块下册《在庆祝中国共产党成立100周年大会上的讲话》 课件.pptx VIP
- 2026年Java架构师面试题及答案.docx VIP
- 吉利-博越-产品使用说明书-2016款 博越1.8TD 6AT两驱型-MR6453C04-吉利NL-3车型用户手册V0.8_20160530(部分功能描述文字修改).pdf VIP
- 人教版八年级数学下册重难点专题提升精讲精练专题09矩形、菱形、正方形的性质与判定重难点题型专训(原卷版+解析).docx VIP
- 2025年江苏省南京市中考物理临考预测仿真模拟练习卷.docx VIP
- 吉利博越产品手册.pptx VIP
- 2014-2023年北京高考真题与模拟试题:导数及其应用(解析版).pdf VIP
- 173页《华为数据之道》读书笔记课件.pptx VIP
- 骐骥驰骋,逐光前行——2026学年下学期七年级(初一)开学第一课主题班会课件-2025-2026学年初中主题班会优质课件.pptx VIP
原创力文档

文档评论(0)