正在加载图片...
第16单元多文档界面程序 dc. SetROP2(R2 NOT) m_pointTo point: dc. MoveTo(r dc LineTo(m pointTo void CMy 1603View: OnInitialUpdate o CScrollView:: OnInitialUpdateo SetScrollSizes(MM TWIPS, CSize(11520, 15120)) void CMy 1603View: On PrepareDC(CDC** pDC, CPrintInfo* pInfo) pDC->SetMapMode (MM TWIPS CScrollView:: On PrepareDC (pDC, pInfo 输入输出:与例16-1基本相同,但使用了滚动视图,可在虚拟的客户区中作图。打印 比例适当,在A4纸上可做到“所见即所得” 分析: CScrollview需要预先设置虚拟客户区的大小等参数,这一工作在其成员函 数 OnInitUpdate()中进行 为了实现“所见即所得”的打印效果,本程序使用了 MM TWIPS逻辑映射模式。映射 模式在视图类的 OnprepareDC()成员函数中设置 MM TWIPS映射模式的单位为1/1440英寸。设置线宽时应以此为标准。由于鼠标消息 中的位置参数是基于物理坐标的,所以在鼠标消息响应函数中调用CDC类的成员函数 PtoDP()将其转换为逻辑坐标。由于这些坐标是相对于实际客户区左上角的坐标,而文 档中存储的应是相对于虚拟客户区左上角的坐标,所以在 OnLButtonUp()函数中还要在这 些坐标上加上实际客户区左上角相对于虚拟客户区左上角的坐标方可存入数组。 单元上机练习题目 1.完善例16-3的绘图程序,包括改善界面(如设计专用图标,完善菜单等)、加上绘制其 他图形的功能等。 2.将吹泡泡程序的结构改为MDl,并使用滚动视图第 16 单元 多文档界面程序 340 dc.SetROP2(R2_NOT); dc.MoveTo(m_pointFrom); dc.LineTo(m_pointTo); m_pointTo = point; dc.MoveTo(m_pointFrom); dc.LineTo(m_pointTo); } } void CMy1603View::OnInitialUpdate() { CScrollView::OnInitialUpdate(); SetScrollSizes(MM_TWIPS, CSize(11520, 15120)); } void CMy1603View::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo) { pDC->SetMapMode(MM_TWIPS); CScrollView::OnPrepareDC(pDC, pInfo); } 输入输出:与例 16-1 基本相同,但使用了滚动视图,可在虚拟的客户区中作图。打印 比例适当,在 A4 纸上可做到“所见即所得”。 分 析:CScrollView 需要预先设置虚拟客户区的大小等参数,这一工作在其成员函 数 OnInitUpdate()中进行。 为了实现“所见即所得”的打印效果,本程序使用了 MM_TWIPS 逻辑映射模式。映射 模式在视图类的 OnprepareDC()成员函数中设置。 MM_TWIPS 映射模式的单位为 1/1440 英寸。设置线宽时应以此为标准。由于鼠标消息 中的位置参数是基于物理坐标的,所以在鼠标消息响应函数中调用 CDC 类的成员函数 LPtoDP()将其转换为逻辑坐标。由于这些坐标是相对于实际客户区左上角的坐标,而文 档中存储的应是相对于虚拟客户区左上角的坐标,所以在 OnLButtonUp()函数中还要在这 些坐标上加上实际客户区左上角相对于虚拟客户区左上角的坐标方可存入数组。 单元上机练习题目 1.完善例 16-3 的绘图程序,包括改善界面(如设计专用图标,完善菜单等)、加上绘制其 他图形的功能等。 2.将吹泡泡程序的结构改为 MDI,并使用滚动视图
<<向上翻页
©2008-现在 cucdc.com 高等教育资讯网 版权所有