首页 范文大全 古典文学 职场知识 中国文学 公文书信 外国名著 寓言童话 百家讲坛 散文/诗歌 美文欣赏 礼仪知识 民俗风情
  • 工作总结
  • 工作计划
  • 心得体会
  • 竞聘演讲
  • 会议发言
  • 爱国演讲
  • 就职演说
  • 开业开幕
  • 思想学习
  • 征文演讲
  • 经验材料
  • 述职报告
  • 调研报告
  • 工作汇报
  • 年终总结
  • 申报材料
  • 学习体会
  • 企划方案
  • 活动方案
  • 技巧经验
  • 模板范例
  • 思想宣传
  • 经济工作
  • 工作报告
  • 组织人事
  • 反腐倡廉
  • 慰问贺电
  • 先进事迹
  • 思想汇报
  • 入党申请书
  • 党会发言
  • 先进性教育
  • 入团申请书
  • 个人简历
  • 演讲稿
  • 调查报告
  • 实习报告
  • 和谐社会
  • 观后感
  • 读后感
  • 作文范文
  • 自我鉴定
  • 讲话稿
  • 自查报告
  • Windows编程实验报告

    时间:2020-11-26 12:32:45 来源:蒲公英阅读网 本文已影响 蒲公英阅读网手机站

    相关热词搜索:编程 实验 报告

     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,0,0));

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

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

     } 结果如图

     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,0,0));

     pDC->SelectObject(&penNew);

     pDC->SetPixel(CPoint(100,100),RGB(255,0,0));

      pDC->MoveTo(150,70);

      pDC->LineTo(300,100);

     pDC->LineTo(400,240);

     pDC->LineTo(200,270);

     pDC->MoveTo(500,100);

     pDC->Arc(20,200,200,300,200,250,20,200);

      pDC->RoundRect(450,100,600,200,30,30); pDC->Arc(100,300,300,500,300,400,200,300);

     pDC->MoveTo(300,400);

     pDC->LineTo(200,400);

     pDC->MoveTo(200,300);

     pDC->LineTo(200,400);

     POINT pt[6]={{400,300},{500,300},{550,385},{500,460},{400,460},{350,385},};

     pDC->Polygon(pt,6); }

     实验结果如图

      3.序 编写单文档应用程序 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,0,0),RGB(255,255,0),RGB(0,255,0)};

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

      NewBrush.CreateSolidBrush(rgb[i]);

      OldBrush=pDC->SelectObject(&NewBrush);

      pDC->Ellipse(70+100*i,70,150+100*i,150);

      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,0,0),RGB(255,255,0),RGB(0,255,0)};

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

      NewBrush.CreateSolidBrush(rgb[i]);

      OldBrush=pDC->SelectObject(&NewBrush);

      pDC->Ellipse(70+100*i,70,150+100*i,150);

      NewBrush.DeleteObject();

     } } 4. 编写程序 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==0)

     {

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

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

     }

     if(flag%2==1)

     {

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

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

     }

     OldFont=pDC->SelectObject(&NewFont);

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

     pDC->SelectObject (OldFont);

     SetTimer(1,10,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=0;

      flag++;

      }

     Invalidate();

     CView::OnTimer(nIDEvent); }

     四、实验总结

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

    • 范文大全
    • 职场知识
    • 精美散文
    • 名著
    • 讲坛
    • 诗歌
    • 礼仪知识