精华内容
下载资源
问答
  • 很好利用VB语言制作的功能强大软件,他主要把是结合实例说明怎样用好VB
  • 主要介绍了VB实现屏蔽文本框右键菜单复制、粘贴等功能,是非常实用一个功能,需要朋友可以参考下
  • 可以实现vb开发中软件注册功能!!~ 主要使用MD5加密。 第一次做,功能不全,你如果能完善程序,请将完善好程序源码发至EMAIL:zhubihang@126.com 或联系我QQ:347048486
  • VB6.0源码编写实现一个功能和界面都很像windows资源管理器,来自国外的Vb源代码,本源码编写Windows资源管理器,可在Windows XP /win7/Win8下正确运行,界面如图所示。注:代码主要是调用了一个封装好DLL文件...
  • vb基本功能

    2007-10-08 15:55:57
    主要是收集一些基本功能,非常适合初学者学习
  • 这是一个VB源码,主要作用是杀弹出窗口。 原理:检测特定进行是否在进程列表或是窗口名称是否出现,如果出现,将该进程强制结束。可用在刷流量时杀弹出窗口。也可用以学习。
  • VB6.0拖拽功能源代码

    2008-12-31 11:07:19
    本程序主要体现VB拖拽功能的使用方法. 本例使用四个picture控件作为拖拽对象容器,然后使用四个picture控件作为四个拖拽对象.
  • VB图象处理功能小考

    千次阅读 2009-08-21 09:10:00
    VB图象处理功能小考最近,因帮别人做VB的图象处理程序,查阅了一些资料,也做了一些实验,有些问题,也有些看法,写下来作为备忘。VB最基本的图象控件是:PictureBox和Image,后者主要用来显示图片,前者既可以显示...

    VB图象处理功能小考

    最近,因帮别人做VB的图象处理程序,查阅了一些资料,也做了一些实验,有些问题,也有些看法,写下来作为备忘。

    VB最基本的图象控件是:PictureBoxImage,后者主要用来显示图片,前者既可以显示图片,也可以用来对所显示图片进行必要的处理,例如,对图片进行旋转、放大、缩小,乃至通过对像素的处理达到对图象的所需的加工处理。从现有资料看,VB针对PictureBox提供的处理函数主要有:Point|Pset; GetPixel|SetPixel;众所周知,这两组函数虽然方便使用,但速度慢。在我的实验中,还发现这两组函数存在一个根本性的区别,用Pset函数在一个Picture属性为NonePictureBox控件中显示出来的图象,可以通过savePicture Picture1.Image “FileName”存储所显示的图象(bmp)。但是,用SetPixel函数在一个Picture属性为NonePictureBox控件中显示出来的图象,不可以通过savePicture Picture1.Image “FileName”存储所显示的图象(存储结果是控件的背景灰色矩形)。究其原因,我认为是:Pset函数是向PictureBox控件上显示图象、而SetPixe函数是向PictureBox的设备(即矩形范围)内显示图象,前者显示出来的图象属于PictureBox从而其Image属性也具有该图象,但SetPixe函数是根据hDC获得矩形区域进行作图,所作图象并不属于PictureBox控件。这可以从它们的参数的不同来区别。不妨做一个试验,对这两个函数显示的图象,在显示完成之后用方法Picture1.refresh进行刷新,Pset所显示的图象仍然显示、而SetPixe显示的图象却不再存在。这里,还要说一下PictureBox控件的属性PictureImage,前者是可读可写的、而后者是只读的,那么,Image属性的值是从那得到的呢?首先,当Picture属性Load了图象并在控件上显示后,Image属性的值就是该图象;此外,当通过Pset函数在控件上显示了图象,控件的Image属性也获得了该图象。这就是为什么不能用操作SavePicture Picture1.picture来存储Pset所显示的图象,因为,此时控件的Picture属性仍然是None,即其指针为Null

    由于Point|Pset; GetPixel|SetPixel函数的速度太慢,许多同行寻求其他途径,例如调用GDI32的函数,但是,StretchBlt函数虽然速度快,但是,由于函数的实参仍然是hDC,所以,该函数也仅仅是复制设备场景(可伸缩),即用该函数在一个Picture属性为NonePictureBox控件上显示的图象,还是不能用SavePicture函数存储为BMP文件。在GDI32的函数中,GetDIBits|SetDIBits函数是不错的选择,可用GetDIBits先将图象数据读入缓冲区(自己定义的数组),经过加工处理后,再用SetDIBits函数将图象数据放入设备的图象中。这个网友已经给出了若干声明和相应的示例,为了完整,将其摘录如下:

    Option Explicit

    Private Type BITMAPFILEHEADER

    bfType   As Integer

    bfSize   As Long

    bfReserved1 As Integer

    bfReserved2 As Integer

    bfOffBits As Long

    End Type

    Private Type Bitmap

    bmType As Long

    bmWidth As Long

    bmHeight As Long

    bmWidthBytes As Long

    bmPlanes As Integer

    bmBitsPixel As Integer

    bmBits As Long

    End Type

    Private Type BITMAPINFOHEADER  '40 bytes

    biSize As Long         'BITMAPINFOHEADER结构的大小

    biWidth As Long

    biHeight As Long

    biPlanes As Integer    '设备的为平面数,现在都是1

    biBitCount As Integer   '图像的颜色位图

    biCompression As Long  '压缩方式

    biSizeImage As Long   '实际的位图数据所占字节

    biXPelsPerMeter As Long  '目标设备的水平分辨率

    biYPelsPerMeter As Long  '目标设备的垂直分辨率

    biClrUsed As Long     '使用的颜色数

    biClrImportant As Long  '重要的颜色数。如果该项为0,表示所有颜色都是重要的

    End Type

    Private Type RGBQUAD  '只有bibitcount124时才有调色板

    Blue As Byte       '蓝色分量

    Green As Byte      '绿色分量

    Red As Byte       '红色分量

    Reserved As Byte     '保留值

    End Type

    Private Type BITMAPINFO

    bmiHeader As BITMAPINFOHEADER

    bmiColors As RGBQUAD

    End Type

    Private Const BI_RGB = 0&

    Private Const DIB_RGB_COLORS = 0&

    Private Declare Function GetDIBits Lib "gdi32" (ByVal aHDC As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As BITMAPINFO, ByVal wUsage As Long) As Long

    Private Declare Function GetGDIObject Lib "gdi32.dll" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, ByRef lpObject As Any) As Long

    Private Declare Function SetDIBits Lib "gdi32" (ByVal hDC As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As BITMAPINFO, ByVal wUsage As Long) As Long

    Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long

    Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hDC As Long) As Long

    Private Function Invert(Pic As StdPicture) As Boolean

    Dim i As Long, hDC As Long

    Dim Bmp As Bitmap, BmpInfo As BITMAPINFO

    GetGDIObject Pic.Handle, Len(Bmp), Bmp

    With BmpInfo.bmiHeader

    .biSize = Len(BmpInfo.bmiHeader)

    .biWidth = Bmp.bmWidth

    .biHeight = Bmp.bmHeight

    .biPlanes = 1

    .biBitCount = Bmp.bmBitsPixel    '按图像实际的位深设置

    .biCompression = BI_RGB

    End With

    hDC = GetDC(0)

    ReDim PicData(Bmp.bmWidthBytes * Bmp.bmHeight - 1) As Byte '按图像数据实际的大小分配缓冲区

    GetDIBits hDC, Pic.Handle, 0, Bmp.bmHeight, PicData(0), BmpInfo, DIB_RGB_COLORS

    For i = 0 To UBound(PicData)

    PicData(i) = 255 - PicData(i)  '反色处理

    Next

    SetDIBits hDC, Pic.Handle, 0, Bmp.bmHeight, PicData(0), BmpInfo, DIB_RGB_COLORS

    ReleaseDC 0, hDC

    End Function

    但是,GetDIBits函数获取的图象数据,仍然与设备有关,即图象数据与屏幕(设备)的显示设置有关。例如,本来Load的图象文件是24位真彩色的图象,但如果你的屏幕为256色(含增强色),那么,GetDIBits函数获取的图象数据就不是每个像素3字节而是2字节的。这对应用该资料后面的改进程序实验就会出错。

    VBPictureBox控件中的图象进行处理,有几点是需要注意的。1、不能识别柯达格式的jpg文件;2、只能保存为BMP格式的图形文件;3、对图象进行按像素处理前,注意将ScaleMode设置为3,因为不同的ScaleMode有不同的ScaleWidth等;48位色的BMP图象,是通过调色板(VGA256个调色寄存器)进行色彩处理的。5、位图扫描行是从下面向上逐行进行的,每行图象数据的字节数成整数倍(如24位色是4的倍数);设记录一个扫描行的像素值需要n个字节,位图阵列大小为n*BiHeight

    当(BiWidth*BiBitCount%32=0n=BiWidth*BiBitCount/8

    当(BiWidth*BiBitCount%32<>0时,n=4*((BiWidth*BiBitCount)、32+1)。

    网上还有一个示例程序是实现图象旋转的,也摘录如下:

    Private Sub DanRotate(ByRef picDestHdc As Long, xPos As Long, yPos As Long, _

                          ByVal Angle As Long, _

                          ByRef picSrcHdc As Long, srcXoffset As Long, srcYoffset As Long, _

                          ByVal srcWidth As Long, ByVal srcHeight As Long)

    '## DanRotate - Rotates an image.

    '##

    '## PicDestHdc      = the hDc of the target picturebox (ie. Picture2.hdc )

    '## xPos            = the target coordinates (note that the image will be centered around these

    '## yPos              coordinates).

    '## Angle           = Rotate Angle (0-360)

    '## PicSrcHdc       = The source image to rotate (ie. Picture1.hdc )

    '## srcXoffset      = The offset coordinates within the Source Image to grab.

    '## srcYoffset

    '## srcWidth = The width/height of the source image to grab.

    '## srcHeight

    '##

    '## Returns: Nothing.

    '## Please note this function doesn't check or returns anything. It's up to you to make sure all parameters

    '## are valid, checked, etc.

    '## Use this code as you like. Credits appreciated.

    '##

    '## Danny van der Ark (danny@slave-studios.co.uk)

    '## Aug 2Oo2

    Dim Points(3) As POINTS2D

    Dim DefPoints(3) As POINTS2D

    Dim ThetS As Single, ThetC As Single

    Dim ret As Long

        'SET LOCAL AXIS / ALIGNMENT

        Points(0).x = -srcWidth * 0.5

        Points(0).y = -srcHeight * 0.5

        Points(1).x = Points(0).x + srcWidth

        Points(1).y = Points(0).y

        Points(2).x = Points(0).x

        Points(2).y = Points(0).y + srcHeight

        'ROTATE AROUND Z-AXIS

        ThetS = Sin(Angle * NotPI)

        ThetC = Cos(Angle * NotPI)

        DefPoints(0).x = (Points(0).x * ThetC - Points(0).y * ThetS) + xPos

        DefPoints(0).y = (Points(0).x * ThetS + Points(0).y * ThetC) + yPos

        DefPoints(1).x = (Points(1).x * ThetC - Points(1).y * ThetS) + xPos

        DefPoints(1).y = (Points(1).x * ThetS + Points(1).y * ThetC) + yPos

        DefPoints(2).x = (Points(2).x * ThetC - Points(2).y * ThetS) + xPos

        DefPoints(2).y = (Points(2).x * ThetS + Points(2).y * ThetC) + yPos

        PlgBlt picDestHdc, DefPoints(0), picSrcHdc, srcXoffset, srcYoffset, srcWidth, srcHeight, 0, 0, 0

    End Sub

     

    Private Sub Command1_Click()

    Unload Me

    End

    End Sub

     

    Private Sub Command2_Click()

    Dim tel As Integer

    Dim srcw As Long, srch As Long

        'Reset & start FPS counter

        FRAME = 0

        Timer1.Enabled = True

        srcw = picCol.ScaleWidth /15  'picCol.scalemode=1时需要这里的转换,若为3则不需要

        srch = picCol.ScaleHeight / 15

        For tel = 0 To 360 Step 1

           Picture1.Cls

           DanRotate Picture1.hDC, srch / 2, srcw / 2, tel, picCol.hDC, 0, 0, srcw, srch'此处修改过

           picBck.Refresh

           FRAME = FRAME + 1

           DoEvents

        Next tel

        'Stop FPS timer

        Timer1.Enabled = False

    End Sub

    Private Sub Timer1_Timer()

     Label1.Caption = FRAME & " fps"

     FRAME = 0

    End Sub

    这个程序经过修改后成功运行,其将图象动画式地旋转,速度很快,适合演示。也可以修改为只将图象旋转一定角度,但也不能将旋转后的图象保存为BMP文件。还有网友给出了一个将VBPictureBox中的BMP图片保存为JPG文件的程序,该程序摘录如下:

    Option Explicit

    Private Type GUID

    Data1 As Long

    Data2 As Integer

    Data3 As Integer

    Data4(0 To 7) As Byte

    End Type

    Private Type GdiplusStartupInput

    GdiplusVersion As Long

    DebugEventCallback As Long

    SuppressBackgroundThread As Long

    SuppressExternalCodecs As Long

    End Type

    Private Type EncoderParameter

    GUID As GUID

    NumberOfValues As Long

    type As Long

    Value As Long

    End Type

    Private Type EncoderParameters

    Count As Long

    Parameter As EncoderParameter

    End Type

    Private Declare Function GdiplusStartup Lib "GDIPlus" (token As Long, inputbuf As GdiplusStartupInput, ByVal outputbuf As Long) As Long

    Private Declare Function GdiplusShutdown Lib "GDIPlus" (ByVal token As Long) As Long

    Private Declare Function GdipCreateBitmapFromHBITMAP Lib "GDIPlus" (ByVal hbm As Long, ByVal hpal As Long, Bitmap As Long) As Long

    Private Declare Function GdipDisposeImage Lib "GDIPlus" (ByVal Image As Long) As Long

    Private Declare Function GdipSaveImageToFile Lib "GDIPlus" (ByVal Image As Long, ByVal filename As Long, clsidEncoder As GUID, encoderParams As Any) As Long

    Private Declare Function CLSIDFromString Lib "ole32" (ByVal str As Long, id As GUID) As Long

    Private Declare Function GdipCreateBitmapFromFile Lib "GDIPlus" (ByVal filename As Long, Bitmap As Long) As Long

    Private Sub Command1_Click()

    Dim ret As Boolean

    Picture1.Picture = LoadPicture(SfilText.text) '打开要压缩的图片

    ret = PictureBoxSaveJPG(Picture1,DfilText.text) '保存压缩后的图片

    If ret = False Then

    MsgBox "保存失败"

    End If

    End Sub

    Private Function PictureBoxSaveJPG(ByVal pict As StdPicture, ByVal filename As String, Optional ByVal quality As Byte = 80) As Boolean

    Dim tSI As GdiplusStartupInput

    Dim lRes As Long

    Dim lGDIP As Long

    Dim lBitmap As Long

    '初始化 GDI+

    tSI.GdiplusVersion = 1

    lRes = GdiplusStartup(lGDIP, tSI, 0)

    If lRes = 0 Then

    '从句柄创建 GDI+ 图像

    lRes = GdipCreateBitmapFromHBITMAP(pict.Handle, 0, lBitmap)

    If lRes = 0 Then

    Dim tJpgEncoder As GUID

    Dim tParams As EncoderParameters

    '初始化解码器的GUID标识

    CLSIDFromString StrPtr("{557CF401-1A04-11D3-9A73-0000F81EF32E}"), tJpgEncoder

    '设置解码器参数

    tParams.Count = 1

    With tParams.Parameter ' Quality

    '得到Quality参数的GUID标识

    CLSIDFromString StrPtr("{1D5BE4B5-FA4A-452D-9CDD-5DB35105E7EB}"), .GUID

    .NumberOfValues = 1

    .type = 4

    .Value = VarPtr(quality)

    End With
    '
    保存图像

    lRes = GdipSaveImageToFile(lBitmap, StrPtr(filename), tJpgEncoder, tParams)

    '销毁GDI+图像

    GdipDisposeImage lBitmap

    End If

    '销毁 GDI+

    GdiplusShutdown lGDIP

    End If

    If lRes Then

    PictureBoxSaveJPG = False

    Else

    PictureBoxSaveJPG = True

    End If

    End Function

    许多网友也给出了一些VB下图象特技处理的示例,但多适用于演示,VB对图象的加工处理所提供的功能是比较有限的。我是不用VB开发的,现在的感觉也是VB不如Delphi好。如果要对图象进行有效地处理,并且,你对图象文件的存储格式能确切了解,不妨对图象文件中的数据进行直接地处理。

    展开全文
  • 主要介绍了VB调用Word拼写检查功能,非常实用的功能,需要朋友可以参考下
  • 主要功能:  在线考试系统中题目生成、试卷提交、成绩批阅等都可以在网上自动完成。只要形成一套成熟题库就可以实现考试自动化。这样一来,教师所要做工作只是精心设计题目、维护题库,而不是组织考试...
  • VB控制键盘上特殊功能键,主要是这三个键:Num Lock键,Caps Lock键,Scroll Lock键,设置Num Lock键状态是否可用,设置Scroll Lock键是否为开启,设置Caps Lock键状态,并返回这些键当前状态。
  • 2002年初学VB6.0时模拟当时一款收费鼠标锁软件而制作win9x系统下软件。 代码主要演示了: win32api操作,简单winsocks使用,注册表操作,资源文件使用。 压缩包内包含了,VB6.0运行库。
  • vb基本功能实现

    2007-10-08 15:49:48
    主要是收集一些基本功能,非常适合初学者学习
  • VB2005语言新功能 选择自 AnyJack Blog 关键字 VB2005语言新功能 出处 有以下主要功能运算符重载/部分类/Continue 关键字/Using 关键字/拆分存取访问/泛型支持运算符重载Dim ShortSpan, LongSpan, TotalSpan As...

    VB2005语言新功能     选择自 AnyJack 的 Blog 
    关键字   VB2005语言新功能
    出处   
     
     有以下主要新功能

    运算符重载/部分类/Continue 关键字/Using 关键字/拆分存取访问/泛型支持


    运算符重载
     Dim ShortSpan, LongSpan, TotalSpan As TimeSpan
     ShortSpan = TimeSpan.FromMinutes(100)
     LongSpan = TimeSpan.FromDays(14)
     TotalSpan = ShortSpan + LongSpan
     Console.WriteLine(TotalSpan.TotalMinutes)
     为什么可以直接TotalSpan = ShortSpan + LongSpan这样呢,原因是TimeSpan类对+号运算符进行了重载,如
      Public Shared Operator+(objA As MyClass,
        objB as MyClass) As MyClass
          ' (Code goes here.)
      End Operator

    部分类
     所谓部分类,就是把类定义为类的一部分,一个类可以有多个部分类组成而形成一个完整的类
     部分类的主要作用用于把类的定义分别存于不同的文件中,使用如下
     比如在文件TestClass_1.vb中存放下面代码
     Partial Public Class 存放
        Public Sub TestMethodA()
            Console.WriteLine("Method A called.")
        End Sub
     End Class
     在文件TestClass_2.vb中存放下面代码
     Partial Public Class TestClass
         Public Sub TestMethodB()
             Console.WriteLine("Method B called.")
         End Sub
     End Class

      而调用时和存放在一起没有什么区别
      Dim Obj As New TestClass()
     Obj.TestMethodA()
     Obj.TestMethodB()

     
    Continue 关键字
     有3中使用方法
     Continue For、Continue Do 和 Continue While
     分别应用于
     For ... Next, Do ... Loop, or While ... End While中
     如下例子
     For i = 1 to 1000
        If i Mod 5 = 0 Then
            ' (Task A code.)
            Continue For
        End If
        ' (Task B code.)
     Next

    Using 关键字
     Using表达式用于控制资源释放
     如下:
     Using NewFile As New _
       System.IO.StreamWriter("c:/MyFile.txt")
         NewFile.WriteLine("This is line 1")
         NewFile.WriteLine("This is line 2")
     End Using
     
     ' The file is closed automatically.
     ' The NewFile object is no longer available here.
     这样,当使用了using关键字时,VB2005会自动调用对象的Dispose()方法释放资源

    拆分存取访问
     在以前有以下三种访问方式
     公用 (Public)
     友元 (Friend)
     私用 (Private)
     但是,当碰到下面情况时会碰到一下问题,如只想给访问Status的权限,而不让非友元类设置Status的值
      Public Property Status() As Integer
         Get
             Return _Status
         End Get
         Set(ByVal value As Integer)
             _Status = value
         End Set
      End Property
     这时就比较难以处理了,然而在VB.2005中可以使用如下代码实现
     Public Property Status() As Integer
         Get
             Return _Status
         End Get
         Friend Set(ByVal value As Integer)
             _Status = value
         End Set
     End Property

    泛型支持 
     泛型支持在C++中已经得到广泛应用,现在VB.2005也开始支持泛型
     和泛型对照的一个非常实用的类是System.Collections.ArrayList类,它是一个可以自动调整大小的集合,
     它可以存放一般的.NET对象,为了支持这项功能,它把所有对象看出OBJECT对象,
     这样,当你只想用它来存放某一个类别的对象时,你不能保证它不能存放其他不同的类别
     然而在泛型中,可以通过OF关键字来强行确定类型,从而保证了容器存放组件的一致性,如下
      Public Class GenericList(Of ItemType)
          Inherits CollectionBase
     
          Public Function Add(ByVal value As ItemType) _
            As Integer
              Return List.Add(value)
          End Function
     
          Public Sub Remove(ByVal value As ItemType)
              List.Remove(value)
          End Sub
     
          Public ReadOnly Property Item( _
            ByVal index As Integer) As ItemType
              Get
                  ' The appropriate item is retrieved from
                  ' the List object and explicitly cast to
                  ' the appropriate type, and then returned.
                  Return CType(List.Item(index), ItemType)
              End Get
          End Property
      End Class
     调用
     ' Create the GenericList instance, and
     ' choose a type (in this case, string)
     Dim List As New GenericList(Of String)
     
     ' Add two strings.
     List.Add("blue")
     List.Add("green")
     
     ' The next statement will fail because it has the
     ' wrong type. There is no automatic way to convert
     ' a Guid object to a string. In fact, this line
     ' won't ever run, because the compiler notices the
     ' problem and refuses to build the application.
     List.Add(Guid.NewGuid())
       
     
    .NET2。0提供下面的泛型供使用,你可以在Systems.Collections.Generic 命名空间中找到这些泛型
    List – 和 GenericList 例子类似的基本集合
    Dictionary –用于索引名称=值的集合
    LinkedList –链表
    Queue – 先进先出集合
    Stack – 后进先出集合
    ReadOnlyCollection – 有固定项目集的集合,其中項目一旦建立就无法更改
    SortedDictionary – 永远保持排序的名称-值集合

     

    转载于:https://www.cnblogs.com/zdcaolei/archive/2005/09/25/2122964.html

    展开全文
  • 主要功能: 1、利用wmp能够播放任何音频文件,能够播放任何路径文件 2、wmp可视化与lrc流动歌词可以切换 3、文件添加实现一键式,所有想添加文件只需一键就可以完全添加 4、缩小窗体可下拉列表进行歌曲选择,...
  • VB窗体中按钮应用实例,主要是练习按钮使用,文本框是一个文本编辑区域,用户可以在该区域输入、编辑、修改和显示正文内容,即创建一个简单文本编辑器。
  • 一个简单文件复制、移动范例,带进度条显示、暂停继续功能主要用到API函数CopyFileEx及MoveFileWithProgress。希望对有这方面需求网友有所帮助。
  • VB 动态显示、隐藏窗体标题栏 VB在运行状态动态显示、隐藏窗体标题栏,勾选复选框将隐藏、取消则显示,虽然此功能实用性不大,这里主要是想让大家了解VB对窗体元素操作,比如窗口句柄、获得窗口哪方面特征、...
  • VB.NET 软件在线自动升级功能演示,含源代码,程序自动更新版本源码中核心文件为UpdatingForm.vb,此文件包括了程序自动升级的主要功能,比如更新显示信息、删除不需要的文件、查找客户端需要更新的文件和需要删除的...
  • 重构机房收费系统,功能是不变,需求是不变,系统背后代码,架构发生了改变。做过vb6.0版系统 后,利用VS的VB.NET平台, 通过调整程序架构,加入了设计模式,改善软件质量、性能,提高软件扩展性和维护...

         

            重构机房收费系统,功能是不变的,需求是不变的,系统背后的代码,架构发生了改变。做过vb6.0版的系统

    后,利用VS的VB.NET平台, 通过调整程序架构,加入了设计模式,改善软件的质量、性能,提高软件的扩展性和维护性。相比旧版系统,新版系统主要亮点有:

     

    亮点一:代码分层管理,清晰明了

     

    亮点二:加入工厂和接口,代码复用较多,减少了重复或相似的代码。

     

    亮点三:用到了存储过程。一方面减少了代码量,另一方面也相当于是一个事务的执行。比如注册或者结账需要同

    时操作多张表,这几个表必须同时被操作成功后才可以完成功能。存储过程使用要比一个个操作表好处在于当有一

    个表未完成相关操作时,其他表也不能完成。

     

    亮点四:DataGridView取代了vb6中的datagrid,操作更加灵活。可以绑定数据库,直接显示数据库中数据,也可以

    通过代码添加。

     

    亮点五:datatable转泛型集合,分离表中的数据。 比如充值后将充值表中的数据转成集合返回到U层显示。

     

    亮点六:报表设计个性化,美观大方。

     

    小结:

             这次机房收费系统实现过程中,我感觉很新鲜的地方 基本就是这些了,实现过程中投入了很多时间。从未知到熟

    悉,很有成就感,心情很愉悦。 学习的过程需要不断的探索和发现,探索未知的,发现新大陆。

     

     

    展开全文
  • VB中延时功能与Sleep函数

    万次阅读 2008-12-08 13:54:00
    延时-Sleep函数,主要功能就是使当前线程等待一段时间,用法就是“Sleep 毫秒数”,这里毫秒数可以设置成任意整型数据。如 Sleep 1000,表示延时1秒(1000毫秒)。Sleep与DoEvents之间是有点区别。DoEvents其实...
     
    

    延时-Sleep函数,主要功能就是使当前线程等待一段时间,用法就是“Sleep 毫秒数”,这里的毫秒数可以设置成任意整型数据。如 Sleep 1000,表示延时1秒(1000毫秒)。

    Sleep与DoEvents之间是有点区别的。DoEvents其实是将CPU的控制权交出去,是为了在长循环中进程占据全部CPU资源,也就是相当于一种事件,网上有这样的说法:DoEvents就是把机会让给别的事件,自己暂时休息一下,但是占着的位置不会空出来。在死循环里放个DoEvents,CPU占用率是100%,同时这个进程还是可以做别的事情的。而Sleep前面也讲过了,就是使当前线程等待一段时间的,英文单词表面上理解也可以理解成“睡觉”的意思,也就是什么都不做了,也不会占着CPU资源的,当然进程也是什么事都不干的。

    举个小例子:

    Dim a As Integer
    Dim b As Integer
    Dim i As Integer
    a=Text1.Text
    b=Text2.Text
    If a<>b Then
    For i = 1 To 30
                PlaySound App.Path & /music.mid '这里的PlaySound是一个函数,由于与本主题无关,不写出来了。
                Sleep 1000 '延时1秒
            Next
    End If

    这就是一个简单的延时程序示例,用到了Sleep函数。(其实这时是变相的使用Sleep函数,可以实现音乐的循环播放,当然音乐的长度要跟延时长度有关,要不然可能效果不好)当然我们也可以用一个循环语句来实现Sleep函数功能,如下:

    Sub wait(i As Integer)
    Dim s As Integer
    Dim j As Integer
    Dim k As Integer
    For j = 0 To i
         For k = 0 To 1000
             s = s
         Next k
    Next j
    End Sub
    在调用的时候直接写上wait(1000)就可以实现与Sleep函数差不多的功能了,当然,可能在某种程度上来说,这个函数的效率并没有Sleep函数强,但也值得一用。

    忘记了,补上API声明,要不然无法使用。

    Private Declare Sub Sleep Lib Kernel32 (ByVal dwMilliseconds As Long) '-----Sleep函数

    展开全文
  • 2\主要基于v区进行通信,实际应用中足够了,故没有对其他区进行操作 3\要点: 1)一次读取v区多个字节, 2)v区位操作:置位和复位,在第1个文本框中输入v区地址,在第2个文本框中输入位地址,如程序默认地址...
  • 主要介绍了VB的TextBox文本框实现垂直居中显示的方法,比较实用的功能,需要的朋友可以参考下
  • 因为懒得半夜起床关机所以写了这个,然后又加了一堆除了关机之外的功能主要是定时执行任务。。。不用计划任务了~ 需要.Net Framework 4.0
  • SpyWorks是一个ActiveX组件集合,主要为需要给Visual Basic 5.0/6.0提供一组高级编程工具开发人员而设计。SpyWorks提供了Visual Basic所不支持Windows系统基本的功能,因而可以让开发人员充分利用Windows...
  • vb教程ppt第二章

    2014-11-26 17:18:57
    vb第二章课件主要是vb环境介绍,主要功能与特点
  • 主要介绍了VB获取文件大小方法,可实现准确获取文件大小的功能,需要朋友可以参考下
  • 我们在开发小程序时,难免会用到登陆注册功能。通常小程序有为我们提供用户授权登陆的功能,但是这个只能获取用户头像和昵称,我们该怎么样来实现小程序账号密码注册和登陆呢,今天就来手把手带大家学习小程序...
  • Windows程序大多数具有“所见即所得”(WYSIWYG,... 本文将介绍如何使用VisualBASIC(以下简称VB)编写具有“所见即所得”功能的Windows程序。 一、方法概述 为了在屏幕上模拟打印效果,我们...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,804
精华内容 721
关键字:

vb的主要功能