⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 untitled-16.txt

📁 mfc 教程
💻 TXT
字号:
                                                                      第2章在窗口中绘图45
      dc.L。neTo(0, 100);
想接着前一条线再画一条线时,只需再次调用LineTo。由于第一次调用LineTo时当前位置
已设置在线的终点,这里就不需要第二次调用MoveTo了:
      dc. MoveTo( 0,   0);
      dc.L。。eTc(0, 100);
      dc.L。neTo(100, 100);
    运用Polyline或PolylineTo可以一次画多条线。两者间的区别在于: P0lylineTO使用设备
描述表的当前位置,而Polyline则不需要。下面的语句绘制一个方框,该方框从描述顶边的
点到另一边的距离为100单位:
      POINT aPoints」=( 0, 0, 0,工00, 100, 100, 100, 0, 0, o 3;
      dc.Polyl。ne(aPolnt, 5);
    下面的语句运用P0lylineTo画了同样的一个方框:
      dc. MoveTo( 0,   0);
      POINT aPo。"t[4]=  0, 100,工00, 100, 100, O, O, OI;
      dc.Polyl。neTo(aPo。nt, 4);
    当PolylineTo返回时,当前位置设在最后一条线段的终点上——这里是点(0,0)。如果
使用的是Polylne,则当前位置不变。
    Charles Petzold的《Prosrammins Windows)中有一个很好的例子。它展示了折线的用处以
及为什么折线有用。下面的OnPaint函数基本上只是Charles程序的MFC改版。它实现的功
能是用  CDC:: P0lyline在窗口内画一条正弦曲线。
        #工flCh*B< ffi己th.h>
        # define SEGMENTS 500
        # dGfiflB PI3.1415926
      void CMainwindow:: onPaint()
      3
              CRect rect;
            GetCI。e。tRect(&rect);
            i。t nw。dth= rect.Width();
            i。t。He。ght=   rect.Height();
            CPaintDC dc(this);
          CPo。nt aPo。nt卜EGMENTS」;
            for(。nt。= 0;。<  SEGMENTS;。、+)   
                。Point{i」. x=( i。   "width)/  SzGMENTS;
              aPo。nt[l」y=(。nt)((nHejght/2)。
                    (1-(。in《2。 PI。 i)/ SEGMENTS》》;
                      I
                          1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -