VisualFreeBasic代码_yGDI_画图

2026-1-20 / 0 评论 / 80 阅读

画图,就是画线、框、圆等
基本步够,

  1. 先设置笔,用来画线条,或框和圆的边线。 \
    例:gg.Pen 线宽度,颜色值
  2. 设置刷子,用来填充框和圆的内部,线条无效。 \
    例:gg.Brush 颜色值
  3. 使用画框画圆等作画 \
    依照笔和刷子来画画
    设置笔和刷永久有效,若不改变,无需重复设置。默认为 1线条黑色,无填充。 

注意:

下面所有用到的坐标和尺寸,都是像素单位,自动响应DPI
响应DPI:数值都按照 100%DPI时设置,代码会根据系统中的DPI自动换算,让我们的软件可以在任何电脑中不同 DPI下都看上去一样。

成员列表

   Sub Pen(ByVal cWidth As Long, ByVal crColor As Long, ByVal iStyle As Long = PS_SOLID) '设置笔,画框线用 {3.PS_NULL 无线.PS_SOLID 实线.PS_DASH 虚线.PS_DOT 点线.PS_DASHDOT 点划线.PS_DASHDOTDOT 点-点划线.PS_INSIDEFRAME 由椭圆、矩形、圆角矩形、饼图以及弦等生成的封闭对象框时,画线宽度向内扩展。如指定的准确RGB颜色不存在,就进行抖动处理}
   Sub Brush(ByVal crColor As Long = -1) '设置刷子,用于填充颜色 -1为空刷子
   Sub BrushHatch(fnStyle As Long, crColor As Long = 0) '设置 样式 刷子,用于填充 {1.HS_BDIAGONAL 从右到左45度 斜纹.HS_CROSS 十字线.HS_DIAGCROSS 45度十字线.HS_FDIAGONAL 从左到右45度 斜纹.HS_HORIZONTAL 水平纹.HS_VERTICAL 垂直纹}
   Sub DrawLine(ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) '画线条,位置1到位置2
   Sub DrawArc(ByVal X As Long, ByVal Y As Long, ByVal W As Long, ByVal H As Long, ByVal StartAngle As Single, ByVal EndAngle As Single) '画圆弧,x y w h 一个假想的圆,位置和宽度高度 , StartAngle 相对于x轴的起始角度(以度为单位)。0度为原的右边中部 , EndAngle 顺时针转了多少角度
   Sub DrawFrame(ByVal X As Long, ByVal Y As Long, ByVal W As Long = 0, ByVal H As Long = 0) '画框 位置和宽度高度
   Sub DrawCircleFrame(ByVal X As Long, ByVal Y As Long, ByVal W As Long, ByVal H As Long, ByVal wC As Long, ByVal hC As Long) '描绘一个圆角矩形,位置和宽度高度、宽圆和高度圆
   Sub DrawEllipse(ByVal X As Long, ByVal Y As Long, ByVal W As Long, ByVal H As Long) '描绘一个椭圆,位置和宽度高度
   Sub DrawPolygon(POINTS() As Point) '描绘多边形 顶点数必须大于或等于2。

Pen 笔,框线

(ByVal cWidth As Long, ByVal crColor As Long, ByVal iStyle As Long = PS_SOLID)
设置笔的大小和颜色,用于画框线用

  • cWidth 宽度,单位像素(自动相应 DPI,设置为 100%DPI时的数值)
  • crColor 颜色,RGB颜色,GDI颜色值,用 BGR(r,g,b) 获取
  • iStyle 线条样式,默认 PS_DASH
PS_NULL 无线
PS_SOLID 实线
PS_DASH 虚线
PS_DOT 点线
PS_DASHDOT 点划线
PS_DASHDOTDOT 点-点划线
PS_INSIDEFRAME 由椭圆、矩形、圆角矩形、饼图以及弦等生成的封闭对象框时,画线宽度向内扩展。如指定的准确RGB颜色不存在,就进行抖动处理

Brush 刷子,填充

(ByVal crColor As Long = -1)
设置刷子,用于矩形、多边形、椭圆等填充颜色

  • crColor 颜色,RGB颜色,GDI颜色值,用 BGR(r,g,b) 获取,等于-1 不填充

BrushHatch 样式刷子

(fnStyle As Long, crColor As Long = 0)
'设置 样式 刷子,用于填充

  • fnStyle 样式
HS_BDIAGONAL 从右到左45度 斜纹
HS_CROSS 十字线
HS_DIAGCROSS 45度十字线
HS_FDIAGONAL 从左到右45度 斜纹
HS_HORIZONTAL 水平纹
HS_VERTICAL 垂直纹
  • crColor 颜色,RGB颜色,GDI颜色值,用 BGR(r,g,b) 获取

DrawLine 描绘线条

(ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long)
'画线条,位置1到位置2

  • x1,y1 开始位置
  • x2,y2 结束位置

DrawArc 描绘圆弧

(ByVal X As Long, ByVal Y As Long, ByVal W As Long, ByVal H As Long, ByVal StartAngle As Single, ByVal EndAngle As Single)

  • x,y,w,h 一个假想的圆,就是描绘这个椭圆上的某个线段
  • StartAngle 相对于x轴的起始角度(以度为单位)0度为原的右边中部
  • EndAngle 顺时针转了多少角度

DrawFrame 描绘矩形

(ByVal X As Long, ByVal Y As Long, ByVal W As Long = 0, ByVal H As Long = 0)

  • x,y 矩形左上角位置
  • w,h 矩形大小,等于0 将会描绘画板的最大尺寸

DrawCircleFrame 描绘圆角矩形

(ByVal X As Long, ByVal Y As Long, ByVal W As Long, ByVal H As Long, ByVal wC As Long, ByVal hC As Long)

  • x,y,w,h 矩形左上角位置和尺寸
  • wC ,hC 圆角的大小,分宽度和高度圆

DrawEllipse 描绘椭圆

(ByVal X As Long, ByVal Y As Long, ByVal W As Long, ByVal H As Long)

  • x,y,w,h 椭圆左上角位置和尺寸

DrawPolygon 描绘多边形

(POINTS() As Point)

  • POINTS() 顶点数数组,必须大于或等于2。多边形每个顶点坐标,首尾会自动闭合。
    Dim p(2) As Point '画个三角形
    p(0).x = 10 : p(0).y = 0
    p(1).x = 20 : p(1).y = 10
    p(2).x = 0  : p(2).y = 10
    gg.DrawPolygon(p())

评论一下?

OωO
取消