标签存档: VB

在VB中用PictureBox实现图片的缩略图浏览

要写一个程序,涉及到缩略图的问题,原先准备用StretchBlt来实现的,后来找了下发现PictureBox的PaintPicture方法 也可以把图像按规定大小进行缩放,试了一下感觉PaintPicture的速度比StretchBlt快一些。

PaintPicture的 函数定义为:

Sub PaintPicture(Picture As IPictureDisp, X1 As Single, Y1 As Single, [Width1], [Height1], [X2], [Y2], [Width2], [Height2], [Opcode])

X1 和Y1是目标位置,Width1和Height1是目标大小,默认是PictureBox的大小,X2和Y2是源位置,Width2和Height2是源 大小,Opcode是操作方式,默认应该是vbSrcCopy,如果Width1、Height1和Width2、Height2的大小不一样则进行缩 放。

新建一个工程,设置Form1的ScaleMode为“3 - Pixel”,往窗体上放1个FileListBox控件名称为 File1,1个ImageList控件名称为ImageList1,2个PictureBox控件,一个名称为Picture1,AutoResize 为True,Visible为False,另外一个名称为Picture2,AutoRedraw为True,Visible为False,Width和 Height为128,1个ListView控件名称为ListView1,将图像列表中普通设置为ImageList1。

在窗体里添加如 下代码:

' 窗体载入时载入图像列表
Private Sub Form_Load()
Dim i As Long
For i = 0 To File1.ListCount - 1


阅读全文 »

用VB写一个你自己的Flash播放器

前天在PConline下了一个孙鑫的《Java从入门到精通》的视频教程,Flash格式,在看的时候感觉很不爽,每一课开始的时候有一大段广 告,而且前面的一部分颇为啰嗦,讲了乱七八糟的东西,不知道是不是因为“入门”的关系,然后就把以前做的一个Flash播放器找出来,直接跳到自己要看的 地方~

要想用VB做一个自己的Flash播放器还是比较方便的,因为Macromedia已经提供了Shockwave Flash控件, 可以方便来的播放Flash影片。要想使用这个控件,首先要在工程里添加这个控件,选中菜单“工程->部件”,找到 Shockwave Flash,打上勾,确定就可以了。另外,因为要加载Flash影片,所以我们还需要加入对话框控件 Microsoft Common Dialog Control。

做这个Flash播放器之前,先用对象浏览器来看一下 Shockwave Flash控件有哪些我们需要的事件、方法和属性。

因为我们做的Flash播放器比较简单,所以没有可以利用的控件事 件。

方法:

Sub Back()

跳 到前一帧,相当于Flash右键菜单中的快退

Function CurrentFrame() As Long

获 取当前播放的为第几帧

Sub Forward()

跳到后一帧,相当于Flash 右键菜单中的快进

Sub GotoFrame(FrameNum As Long)

跳 到指定帧,这是一个相当有用的方法,也是要做这个Flash播放器的理由之一了

Sub Play()

播 放,相当于Flash中的播放

Sub Stop()

停止,需要注意的是这个是停 止,而不是暂停,停止后再开始播放将从第1帧开始

Sub StopPlay()

暂 停,暂停后再播放是继续暂停之前的状态…

阅读全文 »

[VB] 短信统计

无聊时做的一个东东,用来统计短信发送的情况,每个号码发了几条,占的百分比,还有图示。数据文件用从移动网站得到的短信详单,从第一条复制到最后一条保 存成文本文件就可以了~~再想想,似乎真的很无聊的一东西……

下载:SMSStat

[VB] Win+R

以前做的一个小软件,用来管理注册表里AppPath里的项,可以从运行对话框里快速启动程序。我一般是取程序名的两个字母,基本上都是左手边的,比如 Foxmail就用fx,FlashGet用fg,Visual C++用vc,这样就可以只用左手来启动程序了。我是感觉是方便点,具体用不用和怎么用 看个人高兴了。说明文件是照着EMU8086的说明文件用英文写的,纯粹为了好玩,英语没学好,有语法错误是难免的,所以不看也罢^_^。PS.早上起来 发现又下雨了。

下载:WinR

update @ 2009.06.18 把 COMCTL32.ocx 一起放进压缩包,避免有些机器上会出现找不到 COMCTL32.ocx 的错 误。

[VB] 一个操作多线程的类

根据点睛工作室的多线程类改写的,不过没有经过严格测试,好像工作不是很稳定,如果使用不当会出错的说。

Option Explicit

Private Type SECURITY_ATTRIBUTES

nLength As Long

lpSecurityDescriptor As Long

bInheritHandle As Long

End Type

Private Declare Function CreateThread Lib "kernel32" (lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, ByVal lpParameter As Long, ByVal dwCreationFlags As Long, lpThreadId As Long) As Long

Private Declare Function


阅读全文 »