资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

关于vb.net滚动屏保的信息

vb 如何制作屏保程序,有一图片框显示图片和标签显示滚动字幕,要求图片和滚动字幕同步显示

制作屏保程序有现成的工具,别费劲了,又卖不出去,浪费生命

10年的蓬莱网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都营销网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整蓬莱建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“蓬莱网站设计”,“蓬莱网站推广”以来,每个客户项目都认真落实执行。

vb制作的屏保系统,由多张图片循环播放,如何在图片播放时加上一定的特效,比如百叶窗等等,就像PPT制作的

'这个拿去试一试,两个时钟,两个图片框,自己设定图片框2的大小,比如让它和窗体一样大

'查一查PaintPicture的用法,就明白了

'去掉Picture2

Dim Pic_num As Long

Dim Pic_name() As String

Dim pic_star As Long

Dim p_width As Single

Dim p_height As Single

Dim bili_w As Single

Dim bili_h As Single

Dim v_mod As Long

Private Sub Form_Load()

Dim L_name As String

Pic_num = 0

ReDim Pic_name(Pic_num)

L_name = Dir(App.Path "\pic\*.JPG")

Do While L_name ""

ReDim Preserve Pic_name(Pic_num)

Pic_name(Pic_num) = L_name

Pic_num = Pic_num + 1

L_name = Dir

Loop

L_name = Dir(App.Path "\pic\*.BMP")

Do While L_name ""

ReDim Preserve Pic_name(Pic_num)

Pic_name(Pic_num) = L_name

Pic_num = Pic_num + 1

L_name = Dir

Loop

Picture1.AutoSize = True

Picture1.AutoRedraw = True

Picture1.Visible = False

' Me.AutoSize = False

Me.AutoRedraw = True

Me.Visible = True

Timer1.Interval = 10

Timer1.Enabled = False

Timer2.Interval = 50

Timer2.Enabled = False

If Pic_num 0 Then

Picture1.Picture = LoadPicture(App.Path "\pic\" Pic_name(0))

Me.PaintPicture Picture1.Picture, 0, 0, Me.ScaleWidth, Me.ScaleHeight, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight

Timer1.Enabled = True

Timer1.Interval = 2000

Else

MsgBox ("没有图片显示!")

End If

End Sub

Private Sub Form_Resize()

Me.Width = Me.Width

Me.Height = Me.Width

Me.Top = 0

Me.Left = 0

End Sub

Private Sub Timer1_Timer()

Dim L_id As Long

Randomize

L_id = Int((Pic_num) * Rnd)

Picture1.Picture = LoadPicture(App.Path "\pic\" Pic_name(L_id))

bili_w = Picture1.ScaleWidth / Me.ScaleWidth

bili_h = Picture1.ScaleHeight / Me.ScaleHeight

p_width = Me.Width / 100

p_height = Me.Height / 100

pic_star = 0

Randomize

v_mod = Int(10 * Rnd)

'v_mod = 9'取消单引号并修改常数数可看单一效果

Timer1.Enabled = False

Timer2.Enabled = True

End Sub

Private Sub Timer2_Timer()

If pic_star 101 Then

pic_star = pic_star + 1

Select Case v_mod

Case 0

Me.PaintPicture Picture1.Picture, 0, 0, Me.Width, pic_star * p_height, 0, 0, Picture1.Width, bili_h * pic_star * p_height '从上向下

Case 1

Me.PaintPicture Picture1.Picture, 0, 0, pic_star * p_width, Me.Height, 0, 0, bili_w * pic_star * p_width, Picture1.Height '从左向右

Case 2

Me.PaintPicture Picture1.Picture, 0, 0, Me.Width, pic_star * p_height, 0, 0, Picture1.Width, Picture1.Height '压缩的从上向下

Case 3

Me.PaintPicture Picture1.Picture, 0, 0, pic_star * p_width, Me.Height, 0, 0, Picture1.Width, Picture1.Height '压缩的从左向右

Case 4

Me.PaintPicture Picture1.Picture, 0, 0, pic_star * p_width, pic_star * p_height, 0, 0, Picture1.Width, Picture1.Height '压缩的从左上向右下

Case 5

Me.PaintPicture Picture1.Picture, Me.Width - pic_star * p_width, Me.Height - pic_star * p_height, pic_star * p_width, pic_star * p_height, 0, 0, Picture1.Width, Picture1.Height '压缩的从右下向左上

Case 6

Me.PaintPicture Picture1.Picture, Me.Width / 2 - pic_star * p_width / 2, 0, pic_star * p_width / 2, Me.Height, 0, 0, Picture1.Width / 2, Picture1.Height '压缩的从中向左

Me.PaintPicture Picture1.Picture, Me.Width / 2, 0, pic_star * p_width, Me.Height, Picture1.Width / 2, 0, Picture1.Width, Picture1.Height '压缩的从中向右

Case 7

Me.PaintPicture Picture1.Picture, 0, Me.Height / 2 - pic_star * p_height / 2, Me.Width, pic_star * p_height / 2, 0, 0, Picture1.Width, Picture1.Height / 2 '压缩的从中向上

Me.PaintPicture Picture1.Picture, 0, Me.Height / 2, Me.Width, pic_star * p_height, 0, Picture1.Height / 2, Picture1.Width, Picture1.Height '压缩的从中向下

Case 8

Me.PaintPicture Picture1.Picture, Me.Width / 2 - pic_star * p_width / 2, Me.Height / 2 - pic_star * p_height / 2, pic_star * p_width / 2, pic_star * p_height / 2, 0, 0, Picture1.Width / 2, Picture1.Height / 2 '压缩的从中向左上

Me.PaintPicture Picture1.Picture, Me.Width / 2, Me.Height / 2, pic_star * p_width, pic_star * p_height, Picture1.Width / 2, Picture1.Height / 2, Picture1.Width, Picture1.Height '压缩的从中向右下

Me.PaintPicture Picture1.Picture, Me.Width / 2, Me.Height / 2 - pic_star * p_height / 2, pic_star * p_width / 2, pic_star * p_height / 2, Picture1.Width / 2, 0, Picture1.Width / 2, Picture1.Height / 2 '压缩的从中向右上

Me.PaintPicture Picture1.Picture, Me.Width / 2 - pic_star * p_width / 2, Me.Height / 2, pic_star * p_width / 2, pic_star * p_height / 2, 0, Picture1.Height / 2, Picture1.Width / 2, Picture1.Height / 2 '压缩的从中向左下

Case 9

For k = 0 To 9

Me.PaintPicture Picture1.Picture, 0, k * Me.Height / 10, Me.Width, 5 * pic_star * p_height / 10, 0, k * (Picture1.Height / 10), Picture1.Width, (Picture1.Height / 10) '水平百叶窗

Next

If pic_star = 21 Then

pic_star = 101

End If

End Select

Else

pic_star = 0

Timer1.Enabled = True

Me.PaintPicture Picture1.Picture, 0, 0, Me.ScaleWidth, Me.ScaleHeight, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight

Timer2.Enabled = False

End If

End Sub

'这回做了9个,应该明白了吧,其实你第一回的5分也应该给选我,估计是你没明白用法

用vb怎么做个简单的屏幕保护

本实例的项目文件SCRNSAVE.MAK中包括两个文件: SCRNSAVE.BAS、BLANK.FRM。这两个文件的作用分别说明如下。

一、SCRNSAVE.BAS

此模块文件包含四个子程序: HideMouse,ShowMouse,EndScrnsave,Main。前三个子程序分别用于隐藏鼠标光标、重新显示鼠标光标和结束屏幕保护程序返回Windows。当在Windows控制面板的桌面对话框中对屏幕保护程序进行“设置”时,Windows会传给相应的屏幕保护程序一个命令行参数Command$,此命令行参数含有“/c”开关,要求屏幕保护程序提供自己的设置对话框。当在桌面对话框中对屏幕保护程序进行“测试”或在设定的时间内无键盘和鼠标操作而激活屏幕保护程序时,Command$中含有“/s”开关,要求屏幕保护程序立即开始运行。本文提供的屏幕保护程序实例在启动时首先执行Main子程序,Main子程序通过检查Command$来决定后续操作。若Command$中含有“/c”开关,则利用MsgBox显示简单的提示信息, 说明本程序未提供任何设置选项;若Command$中含有“/s”开关,则启动一覆盖全屏幕的黑色窗体BlankForm,并在此窗体上显示动画,进行正常的屏幕保护工作。

为了在程序启动时首先执行Main子程序,应从VB的Options菜单中选择“Project...”项,在Project Options对话框中把Start Up Form设置为“Sub Main”。

二、BLANK.FRM

此文件是屏幕保护程序的主体。它负责建立一个覆盖全屏幕的黑色窗体BlankForm,并在此窗体上显示动画。它还负责监视键盘和鼠标事件,一旦有键盘或鼠标动作,则立即结束屏幕保护程序的运行返回Windows。为了建立一个无边框、无标题条的覆盖全屏幕的黑色窗体,需将BlankForm窗体属性中的BorderStyle置为0-None,Caption置为空,ControlBox置为False,BackColor置为&H00000000&,并在Form_Load中利用Move 0,0,Screen.Width,Screen.Height将其放大为覆盖整个屏幕。

本例显示的动画是根据《电脑爱好者》1995年第8期“动画制作秘籍(一)”中的CIRCSHOW.BAS程序改编而成。动画部分是屏幕保护程序中最精彩的部分。实际上,它也是读者为了编写自己的屏幕保护程序而唯一需要修改的部分,也是读者的创意可以尽情发挥的部分。读者可以充分发挥自己的想象力和创造力,编写出精美动人的动画。本例通过Form_KeyDown和Form_MouseMove来监视键盘和鼠标事件的发生。一旦有键盘输入,则立即结束屏幕保护程序的运行,返回Windows。鼠标则必须在移动了至少三个像素时方能结束屏幕保护程序的运行,这样可避免因敲工作台等偶然的事件而使屏幕保护程序的运行中断。

在建立了以上两个文件后,将其加到项目文件SCRNSAVE.MAK中,生成EXE文件。在生成EXE文件时, 应注意如下两点:

1.在Make EXE File对话框的“Application Title”域中应填写一个特殊的名字。这个名字必须以“SCRNSAVE”打头,随后是你要在控制面板的屏幕保护程序清单中显示的名字。例如, 本例所用标题为“SCRNSAVE VB Screen Saver”。

2.生成的EXE文件的扩展名必须为SCR而不能是EXE。本例所取EXE文件名为SSVB.SCR(按照惯例所有的屏幕保护程序的名字都以SS打头)。读者所要做的最后一件事是将SSVB.SCR拷到自己的Windows目录下, 这样Windows才能找到它, 并在控制面板的屏幕保护程序清单中显示出来。本文实例在PWIN 3.2、VB 3.0环境下调试通过。

清单1: SCRNSAVE.BAS

Declare Function ShowCursor Lib 〃USER〃 (ByVal fShow As Integer) As Integer

Sub EndScrnsave ()

ShowMouse ′使鼠标重新可见

End ′然后退出屏幕保护程序

End Sub

Sub ShowMouse ()

′这个子程序使鼠标箭头重新出现在屏幕上

While ShowCursor(True) 0

Wend

End Sub

Sub HideMouse ()

′这个子程序把屏幕上的鼠标箭头隐蔽起来

While ShowCursor(False) = 0

Wend

End Sub

Sub Main ()

′只允许屏幕保护程序的一个实例运行

If App.PrevInstance=True Then

Exit Sub

End If

′检查一下应该空屏还是显示设置对话框

If InStr(Command$, 〃/c〃) Then

MsgBox 〃No setup options for this screen saver〃 ′显示设置对话框

ElseIf InStr(Command$, 〃/s〃) Then

BlankForm.Show ′开始运行屏幕保护程序

End If

′等到没有要显示的窗体时就退出

While DoEvents() 0

Wend

End Sub

清单2: BLANK.FRM

(1)窗体和控制属性

对象 属性设置

FormBackColor &H00000000&

BorderStyle 0-None

Caption

ControlBox False

Name BlankForm

ScaleMode3-PixelTimerInterval1NameTick

(2)窗体程序

Dim r, f, p, X0, Y0

Dim lastX, lastY

Const pi = 3.14159

Sub Form_Load ()

Move 0, 0, Screen.Width, Screen.Height ′将窗体放大到覆盖全屏幕

HideMouse

r = 50

p = 0

f = 0

X0 = ScaleWidth / 2 - 1

Y0 = ScaleHeight / 2 - 1

End Sub

Sub Form_KeyDown (KeyCode As Integer, Shift As Integer)

EndScrnsave ′结束屏幕保护程序的运行

End Sub

Sub Form_MouseMove (Button As Integer, Shift As Integer,

X As Single, Y As Single)

If IsEmpty(lastX) Or IsEmpty(lastY) Then

lastX = X

lastY = Y

End If

′仅当鼠标移动足够迅速(一次2个象素以上)才恢复屏幕

If Abs(lastX - X) 2 Or Abs(lastY - Y) 2 Then

EndScrnsave ′结束屏幕保护程序

End If

lastX = X

lastY = Y ′记住最后的位置

End Sub

Sub Tick_Timer ()

Dim X As Single

Dim Y As Single

If f = 0 Then

c = RGB(255 * Rnd, 255 * Rnd, 255 * Rnd)

X = r * Cos(2 * pi * p / 360) + X0

Y = r * Sin(2 * pi * p / 360) + Y0

Line (X0, Y0)-(X, Y), c

Circle (X, Y), 2, c

If r = 200 Then

f = 1

Exit Sub

End If

r = r + 1 / 2

p = p + 7

ElseIf f = 1 Then

c = RGB(0, 0, 0)

X = r * Cos(2 * pi * p / 360) + X0

Y = r * Sin(2 * pi * p / 360) + Y0

Line (X0, Y0)-(X, Y), c

Circle (X, Y), 2, c

If r = 50 Then

f = 0

Exit Sub

End If

r = r - 1 / 2

p = p - 7

End If

End Sub

vb.net 屏幕保护程序

系统就有这个屏保啊!~!

Option EXPlicit

Dim quitflag As Boolean '声明终止程序标志变量

Dim lleft

'声明隐藏或显示鼠标的API函数

Private Declare Function ShowCursor Lib "user32"

(ByVal bShow As Long) As Long

'检测鼠标单击或移动

Private Sub Form_Click()

quitflag = True

End Sub

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

Static xlast, ylast

Dim xnow As Single

Dim ynow As Single

xnow = X

ynow = Y

If xlast = 0 And ylast = 0 Then

xlast = xnow

ylast = ynow

Exit Sub

End If

If xnow xlast Or ynow ylast Then

quitflag = True

End If

End Sub

'检测按键

Private Sub Form_KeyDown(KeyCode As Integer,Shift As Integer)

quitflag = True

End Sub

Private Sub Form_Load()

Dim X As Long

lleft = 0

'横向滚动文字的起始X坐标

If App.PrevInstance = True Then

'用APP对象的PrevInstance属性

Unload Me

'防止同时运行屏幕保护程序的两个实例

Exit Sub

End If

Select Case Ucase$(Left$(Command$, 2))

'装载命令行参数

Case "/S" '在显示器属性对话框中单击了

预览按钮或屏幕保护程序被系统正常调用。

Show

'全屏显示Form1窗体

Randomize

'初始化随机数生成器

X = ShowCursor(False)

'隐藏鼠标

BackColor = VBBlack

Do

Timer2.Enabled = True

'启动Timer2 ,显示屏幕保护滚动文字

DoEvents

'转让控制权,以便检测鼠标和按键行为

Loop Until quitflag = True

'运行屏幕保护滚动文字直至有鼠标和按键行为

Timer2.Enabled = False

'终止滚动文字

Timer1.Enabled = True

'启动Timer1,退出屏幕保护程序

Case Else

Unload Me

Exit Sub

End Select

End Sub

Private Sub Form_Unload(Cancel As Integer)

Dim X

X = ShowCursor(True)

'显示鼠标

End Sub

Private Sub Timer1_Timer()

Unload Me

'退出屏幕保护程序

End Sub

Private Sub Timer2_Timer()

显示横向滚动文字

lleft = lleft + 100

If lleft = 11810 Then

lleft = 0

Lab1.Top = Int(Rnd * 7000)

End If

Lab1.Left = lleft

Timer2.Enabled = False

End Sub

VB.net中窗体上控件太多,运行时在桌面上显示不全,怎样用滚动条来解决?请详细说明,最好给个小例子。

思路:

利用几个可以作为容器的控件,添加滚动条就可以了:

我举个例子:(这个问题我记得回答过的!)

添加1个PicTureBox1,作为容器

在PicTureBox1里添加PicTureBox2,在窗体上添加一个垂直滚动条。

把你所谓的许多控件放到PicTureBox2里,滚动条改变的是PicTureBox2在PicTureBox1里的Top属性,我想你通过一定的空间想象力,可以想到效果了吧?

注意:默认状态设置PicTureBox2的Top属性为0,当该属性为负值的时候,PicTureBox2显示的效果是向上移动,即下面原来隐藏的内容为可见了。

要设置PicTureBox2的AutoRedraw 属性为True。

若要左右移动效果,那么改变其 Left 属性,原理不再赘述了。

如何用VB.NET写一个简单的屏幕保护程序?

在窗体上建立2个文本框text1和text2,一个按钮command1,text1里面输入你要转换的字符串,text2里面显示结果,代码如下:

Dim MyString As String

Dim EveryStr(50) As String

Dim TargetStr As String

Private Sub Command1_Click()

MyString = Text1

For i = 1 To Len(MyString)

EveryStr(i) = Right(Left(MyString, i), 1)

If Asc(EveryStr(i)) 123 And Asc(EveryStr(i)) 96 Then EveryStr(i) = \"_\"

If Asc(EveryStr(i)) 91 And Asc(EveryStr(i)) 64 Then EveryStr(i) = \"_\"

TargetStr = TargetStr EveryStr(i)

Next i

Text2 = TargetStr

TargetStr = \"\"

End Sub

引号前面怎么自动给加了个“\”?用的时候请手动把那几个“\”去掉


分享名称:关于vb.net滚动屏保的信息
URL地址:http://www.cdkjz.cn/article/hhojgo.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220