第四讲 绘图与文本编程
Fundamentals of Computers
第四讲 绘图与文本编程
制作:刘晓翔 暨南大学珠海学院《Windows编程》 2015-7-22
简单绘图Fundamentals of Computers
JINAN University
利用API全局函数实现画线功能void CDrawView::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default m_ptOrigin = point; CView::OnLButtonDown(nFlags, point); } void CDrawView::OnLButtonUp(UINT nFlags, CPoint point) { 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); CView::OnLButtonUp(nFlags, point); } 2暨南大学珠海学院《Windows编程》
制作:刘晓翔 2015-7-22
简单绘图Fundamentals of Computers
JINAN University
利用CDC类实现画线功能void CDrawView::OnLButtonUp(UINT nFlags, CPoint point) { CDC* pDC = GetDC(); pDC->MoveTo(m_ptOrigin); pDC->LineTo(point); ReleaseDC(pDC); CView::OnLButtonUp(nFlags, point);
}3暨南大学珠海学院《Windows编程》
制作:刘晓翔 2015-7-22
简单绘图Fundamentals of Computers
JINAN University
利用CClientDC类实现画线功能CClientDC派生于CDC类,并且在构造时调用GetDC函数,在析 构时调用ReleaseDC函数。它与CDC一样,都是实现在窗口的客 户区绘图。
void CDrawView::OnLButtonUp(UINT nFlags, CPoint point) { CClientDC dc(this); dc.MoveTo(m_ptOrigin); dc.LineTo(point);CView::OnLButtonUp(nFlags, point); }制作:刘晓翔
4
暨南大学珠海学院《Windows编程》
2015-7-22
简单绘图Fundamentals of Computers
JINAN University
利用CWindowDC类实现画线功能CWindowDC派生于CDC类,并且在构造时调用GetWindowDC 函数,在析构时调用ReleaseDC函数。该对象可以访问整个窗口 区域,包括客户区与非客户区。
void CDrawView::OnLButtonUp(UINT nFlags, CPoint point) { CWindowDC dc(this); dc.MoveTo(m_ptOrigin); dc.LineTo(point);CView::OnLButtonUp(nFlags, point); }制作:刘晓翔
5
暨南大学珠海学院《Windows编程》
2015-7-22
小小知识点Fundamentals of Computers
JINAN University
窗口的客户区与非客户区MFC框架程序界面中,整个程序窗口就是框架窗口, 工具栏以下白色区域才是视类窗口。 视类窗口只有客户区(即视类窗口本身) 框架窗口既有客户区(菜单栏以下部分),还有非 客户区(标题栏和菜单栏)。 绘图操作一般都是在窗口的客户区进行的(使用CDC 或CClientDC);要在非客户区绘图,则要使用 CWindowDC。制作:刘晓翔
6
暨南大学珠海学院《Windows编程》
2015-7-22
简单绘图Fundamentals of Computers
JINAN University
在桌面上绘图void CDrawView::OnLButtonUp(UINT nFlags, CPoint point) { CWindowDC dc(NULL); //CWindowDC dc(GetDesktopWindow()); dc.MoveTo(m_ptOrigin); dc.LineTo(point); CView::OnLButtonUp(nFlags, point); }7暨南大学珠海学院《Windows编程》 制作:刘
晓翔 2015-7-22
简单绘图Fundamentals of Computers
JINAN University
绘制彩色线条——使用CPen类CPen pen(PS_SOLID,5,RGB(255,0,0)); CClientDC dc(this); CPen* pOldPen = dc.SelectObject(&pen); dc.MoveTo(m_ptOrigin); dc.LineTo(point); dc.SelectObject(pOldPen);注意:当构造一个GDI对象后,该对象并不会立即生效,必须通 过SelectObject函数选入设备描述表,它才会在以后的绘制操作 中生效。在完成绘图操作之后,都要利用SelectObject把先前的 GDI对象选入设备描述表,以便使其恢复到先前的状态。制作:刘晓翔
8
暨南大学珠海学院《Windows编程》
2015-7-22
简单绘图Fundamentals of Computers
JINAN University
使用画刷CBrush类绘图//绘制矩形填充块 CBrush brush(RGB(255,0,0)); CClientDC dc(this); dc.FillRect(CRect(m_ptOrigin,point), &brush); //绘制位图填充块 CBitmap bmp; bmp.LoadBitmap(IDB_BITMAP1); CBrush brush(&bmp); CClientDC dc(this); dc.FillRect(CRect(m_ptOrigin,point), &brush);制作:刘晓翔
9
暨南大学珠海学院《Windows编程》
2015-7-22
简单绘图Fundamentals of Computers
JINAN University
绘制矩形框CPen pen(PS_SOLID,5,RGB(255,0,0)); CClientDC dc(this); CPen* pOldPen = dc.SelectObject(&pen); dc.Rectangle(CRect(m_ptOrigin,point)); dc.SelectObject(pOldPen);
//若要绘制空心的矩形框,需要在设备描述表中将默认 画刷(填充白色)换成透明画刷 CBrush* pOldBrush =(CBrush*)dc.SelectStockObject(HOLLOW_BRUSH); dc.SelectObject(pOldBrush);10暨南大学珠海学院《Windows编程》
制作:刘晓翔 2015-7-22
简单绘图Fundamentals of Computers
JINAN University
绘制连续线条m_ptOrigin = point; //OnLButtionDown //OnMouseMove CClientDC dc(this); if (nFlags == MK_LBUTTON ) { dc.MoveTo(m_ptOrigin); dc.LineTo(point); m_ptOrigin = point; }11暨南大学珠海学院《Windows编程》
制作:刘晓翔 2015-7-22
简单绘图Fundamentals of Computers
JINAN University
橡皮筋技术//OnLButtionDown m_ptOrigin = m_ptEnd = point; //OnMouseMove CClientDC dc(this); if (nFlags == MK_LBUTTON ) { //通过取反的模式擦除旧线条 dc.SetROP2(R2_NOT); dc.MoveTo(m_ptOrigin); dc.LineTo(m_ptEnd); //绘制新线条 m_ptEnd = point; dc.MoveTo(m_ptOrigin); dc.LineTo(m_ptEnd); }12暨南大学珠海学院《Windows编程》
制作:刘晓翔 2015-7-22
文本编程Fundamentals of Computers
JINAN University
在窗口输入文字——视类OnDraw函数MFC中专门为视类提供了响应WM_PAINT消息的响 应函数OnDraw(CDC* pDC)。 如果要防止窗口重绘时显示的文字或图形被刷新,文 字输出和图形绘制的操作都应该在OnDraw函数里完成。void CTextView::OnDraw(CDC* pDC) { CTextDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc);}13
pDC->TextOut(100,100, "第四讲 文本编程");制作:刘晓翔 暨南大学珠海学院《Windows编程》 2015-7-22
文本编程Fundamentals of Computers
JINAN University
在窗
口输入文字——CString类MFC中提供了一个字符串类:CString,这个类没有基类。一个 CString对象由一串可变长度的字符组成。 利用CString操作字符串时,无论存储多少个字符,我们都不需 要对它进行内存分配,因为这些操作在CString类的内部都已经替我 们完成了。void CTextView::OnDraw(CDC* pDC) { CTextDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here CString str("第四讲 文本编程"); pDC->TextOut(100,100, str); }制作:刘晓翔 暨南大学珠海学院《Windows编程》
14
2015-7-22
文本编程Fundamentals …… 此处隐藏:4468字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [求职职场]加法运算定律的运用练习题
- [求职职场]大型石油化工工业过程节能新技术
- [求职职场]2015-2020年中国箱纸板行业分析与投资
- [求职职场]NADEX-IWC5A点焊机故障代码
- [求职职场]英语阅读 非常有用
- [求职职场]鲁卫疾控发〔2012〕2号(联合,印发山东
- [求职职场]2014年莆田公务员行测技巧:数字推理的
- [求职职场]基于最近发展区理论的高中数学课堂有效
- [求职职场]与贸易有关的知识产权协议
- [求职职场]【王风范】微演说·职场演说三
- [求职职场]新时代国珍健康大课堂
- [求职职场]群论期末考试复习题
- [求职职场]施工现场消防安全专项施工方案(范本)-
- [求职职场]初中物理光学知识点归纳完美版
- [求职职场]毕业设计总结与体会范文
- [求职职场]江南大学2018年上半年展示设计第1阶段
- [求职职场]景尚乡民兵参战支前保障方案
- [求职职场]【优质】2019年工会职工之家建设工作总
- [求职职场]数据库技术与应用—SQL Server 2008(第
- [求职职场]汽车变速箱构造与工作原理
- 首钢工业区工业遗产资源保护与再利用研
- 第4课 《大学》节选
- 2016程序文件——检验检测结果发布程序
- 2011年高考试题文言文阅读全解释__2011
- 化学是一门基础的自然科学
- 海外做市商制度的借鉴意义
- 外国建筑史复习资料(
- 七年级下思想品德期末综合测试(二)
- 思政课部2013年上学期教学工作总结
- 电大国际公法任务3 0004
- 《圆的认识》教学设计
- 中国轨道交通牵引变流器行业市场发展调
- 中泰证券#定期报告:坚守时代硬科技和
- 浅论企业财务管理与企业经营投资风险的
- 大功率半导体激光器光纤耦合技术调研报
- 中国传统家具的现状与发展探讨
- Broadcom数字电视芯片助海尔扩展高清电
- 新HSK4词汇练习 超全(五)
- 2013届高考数学单元考点复习12
- 雨霖铃精品课件




