VB API 之 第十课 图像编程(三)

  首先绘制多边形的API函数有:

  Polygon();   //描绘一个多边形,由两点或三点的任意系列构成

  polyPolygon();   //用当前选定的画笔绘画两个或多个多边形

  PolyPolyline();   //用当前选定的画笔描绘两个或多个多边形

  首先来看Polygon的函数原型

Private Declare Function Polygon Lib "gdi32" Alias "Polygon" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long

  参数说明

  hdc: Long  // 绘制多边形设备的句柄

  lpPoint  //指向一个POINTAPI类型的数组

  nCount:Long  //多边形的顶点数

  返回Long类型值,返回0表示失败,不为0则表示成功

Option Explicit

Private Type POINTAPI
    x As Long
    y As Long
End Type

Private Declare Function Polygon Lib "gdi32" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long
Dim Pos(5) As POINTAPI
Dim Flag As Boolean
Dim i As Integer
‘绘图标志变量
Private Sub Command1_Click()
Flag = True
‘开始绘图
End Sub
Private Sub Command2_Click()
Flag = False
‘结束绘图
End Sub
Private Sub Form_Load()
Flag = False
‘禁止绘图
Me.ScaleMode = 3
Me.Picture1.ScaleMode = 3
‘设置对象坐标的度量单位为像素
i = 0
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
If Flag Then
Pos(i).x = x
Pos(i).y = y
If (i >= 3) Then
Polygon Me.Picture1.hdc, Pos(0), 4
‘将多边形的边数设置为4
‘你也可以自己修改多边形的边数
Me.Picture1.Circle (x, y), 3
i = 0
Exit Sub
End If
End If
‘绘制多边形
If (i <= 3) Then
i = i + 1
Me.Picture1.Circle (x, y), 3
End If
End Sub
时间: 2024-08-11 05:45:39

VB API 之 第十课 图像编程(三)的相关文章

vB API 之 第八课 图像编程(一)

画线函数 LineTo(): 画直线 PolyBezier() 画贝塞尔曲线 PolyDraw(): 画多边形曲线 Polyline 画线段 LineTo()函数返回Long类型,返回0表示失败,不为0,则成功 参数 hdc: Long  //设备的句柄 x和y  Long   //线段的位置 示例 Option Explicit Private Declare Function LineTo Lib "gdi32" (ByVal hdc As Long, ByVal X As Lon

VB API 之 第六课 字体应用三

直接上源码不做解释自己看吧 Option Explicit Private Declare Function DrawText Lib "user32" Alias "DrawTextA" (ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long Private Declare Function Get

VB API 之 第九课 图像编程(二)

用到2个API函数,Polyiine,Polylineto函数原型如下 Declare Function Polyline Lib "gdi32" Alias "Polyline" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As LongDeclare Function PolylineTo Lib "gdi32" Alias "PolylineTo&q

Asp.Net Web API 2第十课——使用OWIN自承载Web API

前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html 本教程主要来展示在控制台应用程序中如何通过OWIN来承载Web API. Open Web Interface for .NET (OWIN)在Web服务器和Web应用程序之间建立一个抽象层.OWIN将网页应用程序从网页服务器分离出来,然后将应用程序托管于OWIN的程序而离开IIS之外. 本文仍将使用VS2013. 本文的示

VB API 之 第五课 字体之其他函数介绍

GetFontLanguageInfo() GetFontLanguageInfo()函数返回指定设备中字体的信息. 它的声明形式如下所示: Private Declare Function GetFontLanguageInfo Lib "gdi32" Alias "GetFontLanguageInfo" (ByVal hdc As Long) As Long GetFontLanguageInfo()函数返回Long型值,如果返回值为0,表示是简单字体:返回G

VB API 之 第十一课 绘制矩形

先来介绍几个画矩形的函数: DrawFocusRect():画一个焦点矩形:Rectangle():用当前选定的画笔描绘矩形,并用当前选定的画刷填充:DrawEdge():用指定的样式描绘一个矩形的边框:RoundRect():用当前选定的画笔画一个圆角矩形,并用当前选定的画刷填充. 今天用的是DrawFocusRect()函数,函数原型如下 Private Declare Function DrawFocusRect Lib "user32" Alias "DrawFocu

VB API 之 第七课 字体应用四

SelectClipRgn 功能:选取一个区域新的剪切区域 Declare Function SelectClipRgn Lib "gdi32" Alias "SelectClipRgn" (ByVal hdc As Long, ByVal hRgn As Long) As Long 参数 hdc:设备环境句柄. hrgn:标识被选择的区域. 返回值:返回一个剪辑区域复杂度,可以是下列值之一. NULLREGION:区域为空: SIMPLEREGION:区域为单个矩

ActionScript3游戏中的图像编程(连载二十)

1.4.2 灰度的计算方法 回过头来看RGB,站在科学的角度来解释,它们确实也有更明亮的理由,因为下面一排色彩反射出来的色光总量是上一排色的两倍.      为此,作者曾自作聪明地发明了一条“原创”的灰度公式: Gray=(r+g+b)/3 哈哈,用色光总量来表达颜色的灰度想必就比较准确了吧!沾沾自喜一番以后,我还试着用这条自创的定律来转换这张测试图片,上下色块的灰度果然拉开了,可是很不幸地,左右相邻,边界分明的色块依然粘连在一块(图 1.30). 图 1.30 笔者“自创”的灰度转换 显然此法

ActionScript3游戏中的图像编程(连载十九)

1.4 浅析亮度与灰度/明度的关系 进入正题之前,先来了解一下灰度/明度. 1.4.1 灰度/明度的概念及其与HSB亮度的异同 在很多场合,灰度与明度的概念完全等价. “灰度”最初来源于摄影领域,在彩色显像技术问世以前,拍摄出来的照片只有黑,白,灰三类颜色,在这种黑白照片里,只有白色.黑色以及灰色的点能完好无损地显示出来,其它颜色将根据其亮度呈现出不同深度的灰色.亮度越大灰色越浅,反之越深.把黑与白色之间分成若干级,称为“灰度等级”.能呈现的灰度等级愈多,画面的层次感就愈丰富. 所以,从彩色转黑