第四讲 绘图与文本编程
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 …… 此处隐藏:3447字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [行业范文]美好的法语句子
- [行业范文]描写露珠的句子
- [行业范文]精彩禅语句子图片
- [行业范文]关于满嘴谎言的句子
- [行业范文]关于安静的句子48句
- [行业范文]关于小河的句子
- [行业范文]描写稻田的句子
- [行业范文]思念好朋友的句子
- [行业范文]赞美雪的句子
- [行业范文]早上激励人心的句子
- [行业范文]失恋忧伤的句子
- [行业范文]努力积极向上的句子
- [行业范文]对工作心灰意冷的句子
- [行业范文]失恋让人心疼的句子
- [行业范文]描写珍惜青春的句子
- [行业范文]表达思念的句子简短
- [行业范文]关于父爱的句子范例
- [行业范文]浪漫的英语句子
- [行业范文]关于周末的句子
- [行业范文]思念牵挂的句子
- 有关感恩班会课件简短(二篇)(感恩班会
- 2025年初二下乡军训心得体会800字(15篇
- 关于新员工培训方案汇编(关于新员工培
- 精选高考生寒假学习计划书(精)(高考生
- 毕业实训报告心得体会(3篇)(实训报告心
- 银行工作感悟及心得范文怎么写(四篇)(
- 精选领导干部个人政治画像报告通用(七
- 精选超市11.11活动促销方案(精品超市品
- 2025年怎么做自我介绍汇总(5篇)(至2025
- 最新企业错峰生产方案(26篇)(山西企业
- 最新暑期三下乡社会实践调研报告范本(
- 最新幼儿园大班教育教学总结怎么写(最
- 最新教师节主持词小学(优秀9篇)(教师节
- 关于小学安全教育教学方案(推荐)(关于
- 员工信模板范文怎么写(五篇)(员工信息
- 最新保险销售离职申请书(十六篇)(最新
- 最新XX小学防校园欺凌工作方案怎么写(2
- 有关特岗教师辞职信范文(推荐)(特岗教
- 精选党的建设工作要点简短(党的建设的
- 如何写安康杯竞赛活动总结汇总(4篇)(安




