• 领导讲话
  • 自我介绍
  • 党会党课
  • 文秘知识
  • 转正申请
  • 问题清单
  • 动员大会
  • 年终总结
  • 工作总结
  • 思想汇报
  • 实践报告
  • 工作汇报
  • 心得体会
  • 研讨交流
  • 述职报告
  • 工作方案
  • 政府报告
  • 调研报告
  • 自查报告
  • 实验报告
  • 计划规划
  • 申报材料
  • 当前位置: 勤学考试网 > 公文文档 > 计划规划 > 正文

    2020年Windows编程实验报告

    时间:2020-11-29 12:24:48 来源:勤学考试网 本文已影响 勤学考试网手机站

      Windows 编程实验报告 一、实验目的和要求

      1、了解 CDC 类的使用

      2、掌握常用绘图函数的使用

      3、学会设置字体

      4、掌握画笔和画刷的使用

      5、了解不同文本输出函数的用法 二、实验内容

      【程序 1】

      编写一个单文档的应用程序,在视图窗口中显示一行文本,要求文本颜色为红色,背景色为黄色。

      【程序 2】

      编写一个单文档的应用程序,在客户区使用不同的画笔和画刷绘制点、折线、曲线、圆角矩形、弧、扇形和多边形等几何图形。

      【程序 3】

      编写一个单文档的应用程序,在视图窗口中显示 3 个圆,通过使用不同颜色的画笔以及画刷来模拟交通红绿灯。

      【程序 4】

      编写一个单文档的应用程序,在视图窗口实现一行文本的水平滚动显示,要求每个周期文本为红、黄两种颜色,字体为宋、楷两种字体。

      三、实验过程

      1 1 、void CTestView::OnDraw(CDC* pDC) {

      CTestDoc* pDoc=GetDocument();

      ASSERT_VALID(pDoc);

      // TODO: add draw code for native data here

      pDC->SetTextColor(RGB(255,,));

      pDC->SetBkColor(RGB(255,255,));

      pDC->TextOut(2,3,"红色字体,黄色背景!");

      } 结果如图

      2 2 、 编写一个应用程序 test ,在客户区使用不同的画笔和画刷绘制点、折线、曲线、圆角矩形、弧、扇形和多边形等几何图形。

      同理在 MFC 单文档

      OnDraw 函数中加入以下代码。

      void CTestView::OnDraw(CDC* pDC) {

      CTestDoc* pDoc=GetDocument();

      ASSERT_VALID(pDoc);

      // TODO: add draw code for native data here

      CPen *penOld,penNew;

      CBrush *brushOld,brushNew;

      penNew.CreatePen(PS_SOLID,5,RGB(255,,));

      pDC->SelectObject(&penNew);

      pDC->SetPixel(CPoint(1,1),RGB(255,,));

      pDC->MoveTo(15,7);

      pDC->LineTo(3,1);

      pDC->LineTo(4,24);

      pDC->LineTo(2,27);

      pDC->MoveTo(5,1);

      pDC->Arc(2,2,2,3,2,25,2,2);

      pDC->RoundRect(45,1,6,2,3,3); pDC->Arc(1,3,3,5,3,4,2,3);

      pDC->MoveTo(3,4);

      pDC->LineTo(2,4);

      pDC->MoveTo(2,3);

      pDC->LineTo(2,4);

      POINT pt[6]={{4,3},{5,3},{55,385},{5,46},{4,46},{35,385},};

      pDC->Polygon(pt,6); }

      实验结果如图

      序 编写单文档应用程序 test ,在视图中显示三个圆,通过使用不同颜色的画笔及画刷来模拟交通红绿灯。

      在 MFC 单文档

      onDraw 函数中编写如下代码 void CTestView::OnDraw(CDC* pDC) {

      CTestDoc* pDoc=GetDocument();

      ASSERT_VALID(pDoc);

      // TODO: add draw code for native data here

      CPen *OldPen,NewPen;

      CBrush *OldBrush,NewBrush;

      COLORREF

      rgb[]={RGB(255,,),RGB(255,255,),RGB(,255,)};

      for(int i=;i<3;i++){

      NewBrush.CreateSolidBrush(rgb[i]);

      OldBrush=pDC->SelectObject(&NewBrush);

      pDC->Ellipse(7+1*i,7,15+1*i,15);

      NewBrush.DeleteObject();

      } } 结果如下

      代码如下

      void CSy2_4View::OnDraw(CDC* pDC) {

      CSy2_4Doc* pDoc=GetDocument();

      ASSERT_VALID(pDoc);

      // TODO: add draw code for native data here

      CPen *OldPen,NewPen;

      CBrush *OldBrush,NewBrush;

      COLORREF rgb[]={RGB(255,,),RGB(255,255,),RGB(,255,)};

      for(int i=;i<3;i++){

      NewBrush.CreateSolidBrush(rgb[i]);

      OldBrush=pDC->SelectObject(&NewBrush);

      pDC->Ellipse(7+1*i,7,15+1*i,15);

      NewBrush.DeleteObject();

      } } 编写程序 test ,实现一行文本水平滚动显示,要求每个 周期文本为红、黄两种颜色,字体为宋、楷两种字体。

      void CTestView::OnDraw(CDC* pDC) {

      CTestDoc* pDoc=GetDocument();

      ASSERT_VALID(pDoc);

      // TODO: add draw code for native data here

      CFont *OldFont,NewFont;

      if(flag%2==)

      {

      pDC->SetTextColor(RGB(255,,));

      NewFont.CreatePointFont(2,"宋体",NULL);

      }

      if(flag%2==1)

      {

      pDC->SetTextColor(RGB(255,255,));

      NewFont.CreatePointFont(2,"楷体",NULL);

      }

      OldFont=pDC->SelectObject(&NewFont);

      pDC->TextOut(x,5,"漂移");

      pDC->SelectObject (OldFont);

      SetTimer(1,1,NULL);

      NewFont.DeleteObject(); } void CTestView::OnTimer(UINT nIDEvent)

      {

      // TODO: Add your message handler code here and/or call default

      x++;

      CClientDC dc(this);

      CRect rect;

      GetClientRect(&rect);

      if(x>=rect.right)

      {

      x=;

      flag++;

      }

      Invalidate();

      CView::OnTimer(nIDEvent); }

      四、实验总结

      这次的实验做的时间有点长,不过收获还是蛮多的,比如如何设置文本的字体、颜色等属性。其中很关键的是通过第五个实验使我了解到 OnTimer()函数的用法以及对 Invalidate()函数的使用。增加对windows 编程的兴趣。

    • 考试时间
    • 范文大全
    • 作文大全
    • 课程
    • 试题
    • 招聘
    • 文档大全

    推荐访问