PictureBox对象可以说是任何对象的原始型态,它可以加载图片、显示文字、画图外,它还能与Frame对象一样,在自己本身里头加载其它的对象而自成一个小群组,用PictureBox可以仿真出任何对象的外观,PictureBox是VB基本控件里变化最多,功能最多,也是令人最想去征服它的一个物件。

*在执行阶段,可以用VB的函数来帮PictureBox加载图片:

Command1_Click()

Picture1.Picture = LoadPicture("E:\MyGif\AniGif0562.gif")

End Sub

*在PictureBox里画图:

PSet方法:PSet不只是用在PictureBox上,也可以用在窗体上,PSet最主要功用用就是在某一点位置上画一个点,用法是:

Object.PSet(X,Y), Color: Private Sub Command1_Click()

Picture1.PSet(500,260),RGB(128,0,255)          'RGB函数是以红色、绿色、蓝色来表示颜色,详情请到函数指令参考

End Sub

若颜色省略,则以PictureBox预设的颜色。

范例:满天繁星:

Private Sub Timer1()_Timer

Randomize

X = Int(Rnd * Picture1.ScaleWidth)

Y = Int(Rnd * Picture1.ScaleHeight)

R = Int(Rnd * 256)

G = Int(Rnd * 256)

B = Int(Rnd * 256)

Picture1.PSet (X, Y), RGB(R, G, B)

End Sub

Line方法:Line方法专门用来画直线的工具,在窗体上也可以使用,用法:

Object.Line(X1,Y2)-(X2,Y2), Color, BF

Color在Line里与PSet一样是可以被省略的,在Color后方若是加入B则画出的不是线条,而是一个空心矩形,若是BF,则画出来的是实心矩形。

Private Sub Command1_Click()

Picture1.Line(50,50)-(500,750)

End Sub

Private Sub Command1_Click()

Picture1.Line(50,50)-(500,750), ,B

End Sub

Private Sub Command1_Click()

Picture1.Line(50,50)-(500,750), ,BF

End Sub

Circle方法:Circlr方法专门用来画圆,窗体上也是可以使用,用法:

Object.Circle(X,Y), R, Color, 起始角度, 终止角度, 椭圆率

Private Sub Command1_Click()

Picture1.Circle(1000, 1000), 800

End Sub

Private Sub Command1_Click()

Const PI = 3.1415926535

Picture1.Circle (1000, 1000), 800, , PI / 4, 3 * PI / 4

End Sub

若是设定起始角度与终止角度,画出来的圆会变成弧,而角度单位使用的是弧度,也就是说,180。=3.1415926535...

Private Sub Command1_Click()

Const PI = 3.1415926535

Picture1.Circle (1000, 1000), 800, , -PI / 4, -3 * PI / 4

End Sub

若是起始角或终止角使用负数,它们还由由圆心画直线到起始角或终止角,这样就可以画出扇形。

Private Sub Command1_Click()

Picture1.Circle (1000, 1000), 800, , , , 0.75

End Sub

椭圆率则是圆的Y轴与X轴的比值,也就是 Y/X ,可以画出椭圆形。

范例:在PictureBox里,拖曳产生一个圆

(一般)

Dim Dx As Single, Dy As Single

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 1 Then

Dx = X

Dy = Y

End If

End Sub Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 1 Then

Picture1.Cls

Picture1.Line (Dx, Dy)-(X, Y)

Picture1.Circle (Dx, Dy), (((Dx - X) ^ 2 + (Dy - Y) ^ 2) ^ 0.5)

End If

End Sub Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 1 Then

Picture1.Cls

Picture1.AutoRedraw = True

Picture1.Circle (Dx, Dy), (((Dx - X) ^ 2 + (Dy - Y) ^ 2) ^ 0.5)

Picture1.AutoRedraw = False

End If

End Sub

Cls方法:Cls方法,就是清除屏幕上对象所在范围的内容,窗体也适用,若已存在内存里的内容,则无法消除,用法:Object.Cls,范例在上面的画圆范例里。

Point方法:Point就是读取PictureBox某一点上的颜色数值,传回值是长整数型态,在窗体上也适用,用法:传回值 = Object.Point

Private Sub Picture1

AutoRedraw属性:上面的PSet、Line、Circle是VB所提供的,画图在屏幕上的方法,因此只要对象移出屏幕外,或是对象被其它窗口或对象给盖着,刚才所画的图会不件,若在绘图时,把AutoRedraw设为True,则可把图绘入内存,即使用Cls方法也清除不掉,范例在上面的画圆范例里头。

想要把用VB函数在PictureBox里所画的图给存起来时(把AutoRedraw设为True时所绘的图才能存盘),VB提供了SavePicture方法,用法是SavePicture Object.Picture, 存档名。

Private Sub Command1_Click()

SavePicture Picture1.Picture, "C:\Windows\Temp\Tmp.Bmp"

End Sub

SavePicture只能存BMP格式的,请别异想天开把扩展名改成JPG或GIF,存起来的图仍是BMP格式的图。

PaintPicture方法:PaintPicture方法,可以把某个物计内的图转贴到另一个物件上,但要有一个前题,这个图是用Picture属性加载进来的图才可以,用法:

Object.PaintPicture 来源对象.Picture, Object.X, Object.Y, 图在Object上的宽度, 图在Object上的高度, 来源对象X起始位置, 来源对象起始Y位置, 来源对象上的宽度, 来源对象上的高度, 贴图模式

Private Sub Command1_Click()

Picture1.PaintPicture Picture2.Picture, 0, 0         '原尺寸转印

End Sub

●若是改变了图在Object上的宽与高,可以改变图形的缩放,Picture2内的图被放大转贴到Picture1里。

Private Sub Command1_Click()

Picture1.PaintPicture Picture2.Picture, 0, 0, 750, 600

End Sub

Print方法:Print可以在PictureBox上打印文字,窗体也适用,用法:Object.Print 资料。

Private Sub Command1_Click()

MyLng = 1234567

Picture1.Print "今天天气真好"

Picture1.Print "MyLng = " & MyLng

End Sub

CurrentX与CurrentY属性:设定或传回目前PictureBox上画笔所在的位置,窗体也适用。

Private Sub Command1_Click()

Picture1.CurrentX = 500

Picture1.CurrentY = 350

Picture1.Print "今天天气真好"

End Sub

摘录自:http://www.cnblogs.com/rosesmall/p/5048705.html

VB中PictureBox控件使用教程的更多相关文章

  1. 基于VB中WINSOCK控件的网上象棋系统的实现

    本文发表在<微型机与应用>杂志2001年第3期. 基于VB中WINSOCK控件的网上象棋系统的实现 马根峰1   ,  孙艳2  , 王平1 (1.重庆邮电学院自动化学院,重庆,40006 ...

  2. winfrom中pictureBox控件的部分使用方法

    一.后台属性 1.pictureBox1.Image显示图片 2.pictureBox1.ImageLocation存储和提取图片路径 二.面板属性 1.Picturebox控件SizeMode属性 ...

  3. C# winform中PictureBox控件的SizeMode模式

    SizeMode属性有五种模式, Normal →标准模式, 在此模式下, 图片位于PictureBox的左上角, 图片的大小由PictureBox控件的大小决定, 当图片的大小大于PictureBo ...

  4. VB中WinSock控件的属性、方法、事件及应用

    一.WinSock简介       Socket(套接字)最初是由加利福尼亚大学Berkeley(伯克利)分校为UNIX操作系统开发的网络通信接口,随着UNIX的广泛使用,Socket成为当前最流行的 ...

  5. VB 中 NumericUpDown 控件 如何为手动输入设定触发事件

    Private Sub numDuration_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) ...

  6. vb.net中让控件内容为空(Control类)

    在平常的敲系统中大家有没有遇到需要让Textbox控件或者其他的控件的显示内容为空,以前直接的做法是直接等于空值,如果此类控件有很多,都需要空值,难道都要设置一下它的值为空嘛,显然这是一个笨办法,有没 ...

  7. VB.NET设置控件和窗体的显示级别

    前言:在用VB.NET开发射频检测系统ADS时,当激活已存在的目标MDI子窗体时,被其他子窗体遮住了,导致目标MDI子窗体不能显示. 这个问题怎么解决呢?网上看到一篇帖子VB.NET设置控件和窗体的显 ...

  8. Qt报表控件NCReport教程:添加报表字段

    NCReport是一款轻量级.快速.多平台.简单易用的基于Qt toolkit的C++编写的报表解决方案,目前主要包括报表渲染库和报表设计器GUI应用程序. 在前面的文章<报表控件NCRepor ...

  9. C#WebBrowser控件使用教程与技巧收集--苏飞收集

    C#WebBrowser控件使用教程与技巧收集--苏飞收集 先来看看常用的方法 Navigate(string urlString):浏览urlString表示的网址 Navigate(System. ...

随机推荐

  1. L2-011. 玩转二叉树

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA28AAAHQCAIAAAC5rsUiAAAgAElEQVR4nO3dzYts953n+foXcpUL0Q

  2. BZOJ 1691: [Usaco2007 Dec]挑剔的美食家 [treap 贪心]

    1691: [Usaco2007 Dec]挑剔的美食家 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 786  Solved: 391[Submit][S ...

  3. 方法传参(JAVA与C的比较)

    java代码:public class Test{ static int e; // 默认是0 static String f; //默认是null public static void main(S ...

  4. 【repost】JS原型与原型链终极详解

    一. 普通对象与函数对象  JavaScript 中,万物皆对象!但对象也是有区别的.分为普通对象和函数对象,Object ,Function 是JS自带的函数对象.下面举例说明 function f ...

  5. 解读ASP.NET 5 & MVC6系列(14):View Component

    在之前的MVC中,我们经常需要类似一种小部件的功能,通常我们都是使用Partial View来实现,因为MVC中没有类似Web Forms中的WebControl的功能.但在MVC6中,这一功能得到了 ...

  6. MATLAB 成对T检验(paired-ttest)

    学过的统计知识忘光了,飞速恶补了一下能用到的,此篇多有错误今后看到再改= =||| 成对t检验(Paired ttest) 将两组测量值对应相减,再将所得差值看作服从正态分布的随机变量,然后再做关于差 ...

  7. .NET跨平台之旅:ASP.NET Core从传统ASP.NET的Cookie中读取用户登录信息

    在解决了asp.net core中访问memcached缓存的问题后,我们开始大踏步地向.net core进军——将更多站点向asp.net core迁移,在迁移涉及获取用户登录信息的站点时,我们遇到 ...

  8. 【WPF】整个自定义按钮后台添加

  9. 协程--gevent模块(单线程高并发)

    先恶补一下知识点,上节回顾 上下文切换:当CPU从执行一个线程切换到执行另外一个线程的时候,它需要先存储当前线程的本地的数据,程序指针等,然后载入另一个线程的本地数据,程序指针等,最后才开始执行.这种 ...

  10. IDEA快捷键

    [常规] Ctrl+Shift + Enter,语句完成 "!",否定完成,输入表达式时按 "!"键 Ctrl+E,最近的文件 Ctrl+Shift+E,最近更 ...