一组VB实用小程序函数

    技术2022-05-11  52

    用VB实现编程离不开函数调用及Windows API函数的调用,以下是笔者收集的一些实用的小例程,它们可以直接用在你的实际编程中,也可以根据实际应用加以扩充完善。其中涉及Windows API函数调用的代码你可以从VB5.0系统的API函数查看器中复制函数定义内容,以避免出错。

      1.系统型表单

      系统型意味着用户完成当前表单操作之前无法进行其它操作,这对于编制系统口令保护界面尤为重要。如果你希望当前表单系统型表单,需如下定义API函数:

    Declare Function SetSysModalWindow Lib "User" (ByVal hWnd As Integer) As Integer

      然后调用:oldSysModal = SetSysModalWindow([Form].hWnd)

      2.获取驱动器类型

      代码如后:

    Declare Function GetDriveType Lib “Kernel" (ByVal nDrive As Integer) As IntegerGlobal Const DRIVE_REMOVEABLE% = 2, DRIVE_FIXED% = 3Global Const DRIVE_REMOTE% = 4

      3.表单在对中

      本子程序功能使表单定位在屏幕中央,在表单中任何需要表单对中的地方只需加入一行代码:

    “centerwindow.me”即可成功调用。

    Public Sub CenterWindow(f As Form)f.Top = (Screen.Height * .5) - (f.Height * .5)f.Left = (Screen.Width * .5) - (f.Width * .5)End Sub

      4. 定义变量

      许多的程序员习惯于如下定义变量:

    Dim iNum, iNextNum, iLastNum as Integer

      实际上只有最后一个变量被设为了整型,前两个变量则是系统的缺省的Variant 数据类型,而Variant 数据类型可用来替换任何数据类型,显然对于精练的程序设计是不利的。 正确的方法如下:

    Dim iNum as IntegerDim iNextNum as IntegerDim iLastNum as Integer

      5. 使文本高亮

      本子程序使被触发的诸如文本,标签等控件的文本被选中

    Public Sub SetSelected()Screen.ActiveControl.SelStart = 0Screen.ActiveControl.SelLength = Len(Screen.ActiveControl.Text)End Sub

      6. 关闭其它程序

      下面的代码可关闭内存中的其它程序

      title = "MyAPP" '定义你需关闭的程序窗口的标题

    ihWnd = findWindow(0&, Title)ihTask = GetWindowTask (ihWnd)iRet = PostAppMessage(ihTask, WM_QUIT, 0, 0&)

      7. 文件存在否?

      本函数返回查找的文件是否存在。

    Function FileExist(Filename as string) as BooleanFileExist = Iif(Dir(Filename) <> "", True, False)End Function

      8. 主程序唯一

      用下面提供的代码作你的主程序可防止应用程序的多重执行,你应当将它放在确信需要它的代码模块内。

    Public Sub Main()If App.PrevInstance ThenBringWindowToTop frmMain.hwndElseLoad frmMainEnd IfEnd Sub

      上面这些精悍的代码对于专业程序员来说非常有实用价值,希望你能从中获得启发。

           以上代码来自: 源代码数据库(SourceDataBase)           当前版本: 1.0.392               作者: Shawls           个人主页: Http://Shawls.Yeah.Net             E-Mail: ShawFile@163.Net                 QQ: 9181729

     

    最新回复(0)