文档详情

Windows第四次实验报告.doc

发布:2015-09-22约3.4千字共5页下载文档
文本预览下载声明
第四次Windows编程技术上机报告 填写时间:2015/ 6 /11 课程名称 Windows编程技术 姓名 依力夏提江·艾买尔 学号 12101020129 专业年级 计12-1 实验内容: 图形和文字编程 编写图形图像和文字的应用 实验步骤: 在实验一的单位档工程基础上实现 实现常用的图形显示(直线、矩形、圆、椭圆等) 实现各种文字的显示(字体,大小等) 以上必须完成的内容 实现位图的显示 实验结果与结论:(核心代码和程序的运行效果) 图形显示: void CEx_GDIView::OnDraw(CDC* pDC) { CEx_GDIDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); int data[20] = {19,21,32,40,41,39,42,35, 33,23,21,20,24,11,9,19,22,32,40,42}; CRect rc; GetClientRect(rc);// 获得客户区的大小 rc.DeflateRect(100,0); // 将矩形大小沿x和y方向各减小50 int gridXnums = 10, gridYnums = 8; int dx = rc.Width()/gridXnums; int dy = rc.Height()/gridYnums; CRect gridRect(rc.left,rc.top,rc.left+dx*gridXnums,rc.top+dy*gridYnums); // 调整矩形大小 CPen gridPen(0,0,RGB(255,255,255)); CPen* oldPen = pDC-SelectObject(gridPen); for (int i=0; i=gridXnums; i++) // 绘制垂直线 { pDC-MoveTo(gridRect.left+i*dx,gridRect.bottom); pDC-LineTo(gridRect.left+i*dx,gridRect.top); } for (int j=0; j=gridYnums; j++) // 绘制水平线 { pDC-MoveTo(gridRect.left,gridRect.top+j*dy); pDC-LineTo(gridRect.right,gridRect.top+j*dy); } pDC-SelectObject(oldPen); // 恢复原来画笔 gridPen.Detach(); // 将画笔对象与其构造的内容分离,以便能再次构造画笔 gridPen.CreatePen(0,0,RGB(201,64,64)); // 重新创建画笔 pDC-SelectObject(gridPen); CBrush gridBrush(RGB(201,64,64)); // 创建画刷 CBrush* oldBrush = pDC-SelectObject(gridBrush); POINT ptRect[4] = {{-9,-9},{-9,9},{9,9},{9,-9}}, ptDraw[4]; int deta; POINT pt[256]; int nCount = 20; deta = gridRect.Width()/nCount; for (i=0; inCount; i++) { pt[i].x = gridRect.left+i*deta; pt[i].y = gridRect.bottom-(int)(data[i]/60.0*gridRect.Height()); for (j=0; j4; j++) { ptDraw[j].x = ptRect[j].x+pt[i].x; ptDraw[j].y = ptRect[j].y+pt[i].y; } pDC-Polygon(ptDraw,4); // 绘制小方块 } pDC-Polyline(pt,nCount); // 绘制折线 // 恢复原来绘图属性 pDC-SelectObject(oldPen); pDC-SelectObject(oldBrush); } 文字的显示: void CEx_TextDoc::Serialize(CArchive ar) { if (ar.IsStoring()) {
显示全部
相似文档