工控编程吧

标题: 上位机MFCV如何绘制图形 [打印本页]

作者: qq263946146    时间: 2019-7-31 10:27
标题: 上位机MFCV如何绘制图形
CPaintDC或CDC等都带有非常丰富的图形绘制函数,
比如绘制直线LineTo,
绘制矩形Rectangle。
绘制椭圆Ellipse
当前我们准备一个例程供大家参考。
例程运行后会启动一个定时 器,不间断刷新界面,绘制不同图形
  1.    CRect rect;
  2.         GetClientRect(rect);
  3.         rect.InflateRect(-50, -50, -50, -50);

  4.         CPaintDC dc(this);
  5.         //绘制直线
  6.         if (m_nDraw == 1)
  7.         {
  8.                 dc.MoveTo(rect.left, rect.top);
  9.                 dc.LineTo(rect.right, rect.bottom);
  10.         }
  11.         //绘制矩形
  12.         else if (m_nDraw == 2)
  13.         {
  14.                 dc.Rectangle(rect);
  15.         }
  16.         //绘制圆形或椭圆形
  17.         else if (m_nDraw == 3)
  18.         {
  19.                 dc.Ellipse(rect);
  20.         }
  21.         //绘制扇形
  22.         else if (m_nDraw == 4)
  23.         {
  24.                 dc.Pie(rect,
  25.                         CPoint(rect.right, rect.CenterPoint().y),
  26.                         CPoint(rect.CenterPoint().x, rect.right));

  27.         }
  28.         //绘制多边形
  29.         else if (m_nDraw == 5)
  30.         {
  31.                 CPoint point[4];
  32.                 point[0].x = rect.left + rect.Width() / 2;
  33.                 point[0].y = rect.top;
  34.                 point[1].x = rect.right;
  35.                 point[1].y = rect.top + rect.Height() / 2;
  36.                 point[2].x = point[0].x;
  37.                 point[2].y = rect.bottom;
  38.                 point[3].x = rect.left;
  39.                 point[3].y = point[1].y;
  40.                 dc.Polygon(point, 4);
  41.         }
  42.         else if (m_nDraw == 6)
  43.         {
  44.                 dc.RoundRect(rect, CPoint(50, 50));
  45.         }
复制代码
(, 下载次数: 0)