当前位置:编程学习 > VB >>

VB在编程中的几个细节应用

 

 

 

1、避免程序被多次调用

 

为了保护自己的“劳动成果”,许多编程用户常常会在程序中添加一些程序保护功能模块,以防止程序被其他用户非法调用或者多次调用。下面的功能代码就是用来防止自己的VB应用程序,被别人通过多次双击图标而重复调用用的,大家可以把它直接复制到自己的VB程序中,来增强程序的保护功能:

 

Private Sub Form_ Load

   if app.previnstance then

       msgbox ″不要同时调用多个程序,以免造成系统资源不足。″ //提示用户不能多次调用

   end if

End Sub

 

2、新建一个椭圆形的窗口

如果我们想在程序界面中创建一个椭圆形的窗口,那该怎么办呢?通常采用的方法是利用VB中的Windows API函数来实现的。首先,我们应该使用VB中的API文本查看器将下列API函数加入窗体的通用代码中:

 

Private Declare Function CreateEllipticRgn Lib ″gdi32″(ByVal X1 As Long,ByVal Y1 As Long,ByVal X2 As Long,ByVal Y2 As Long)As Long //Windows API函数

 

Private Declare Function SetWindowRgn Lib ″user32″(ByVal hWnd As Long,ByVal hRgn As Long,ByVal bRedraw As Boolean)As Long

 

 

然后在Form_Load()窗体中加入如下代码,这些代码可以创建一个椭圆形状的窗口:

 

Private Sub Form_Load()

   Show

   SetWindowRgn hWnd,CreateEllipticRgn(10,10,250,180),True

End Sub

 

3、使用DBGrid来控制数据库的列宽

现在有很多数据库软件是用VB来开发的,而且其中有许多开发细节令人回味。例如在数据库中,如何实现为不同的列设置不同的宽度?大家可以使用下面的代码来实现:

 

Form_Activate()

   DBGrid1.Columns(0).Width=500 ′为第1列设置宽度

   DBGrid1.Columns(1).Width=600 ′为第2列设置宽度

   DBGrid1.Columns(2).Width=300 ′为第3列设置宽度

   ……

   ……

   DBGrid1.Columns(n).Width=800 ′为第n列设置宽度

End Sub

 

 

4、实现客户端的下载功能

如果希望客户端下载某个代码部件,则首先要将该部件包装成CAB文件。例如,用VB生成了一个ActiveXDLL—MyDLL.DLL,它只有一个叫MyClass的类,其唯一的方法是显示LogIn对话框。用SetupWizard包装这个部件,生成了CAB文件。下面的代码将实现在客户端下载MYDLL.CAB:

 

<OBJECTID=MyClass> //ObjectID是这个ActiveXDLL中某个类的名字

   CLASSID=“CLSID:503B3E09-2191-11D2-8E90-00104B64F7B7”

   CODEBASE=“mydll.cab>”

</OBJECT>

 

<INPUTTYPE=buttonVALUE=“LogInNOW”NAME=“BtnLogin”>

<!-

Whenthebuttonisclicked,callthe“LogIn”method.

-->

<SCRIPTlanguage=“VBScript”>

<!-

   SubWindow_OnLoad

       MyClass.Login //调用MyClass类的方法LogIn

   EndSub

 

   SubBtnLogic_OnClick()

       MyClass.Login

   EndSub

-->

</Script>

 

5、实现屏幕滚屏保护效果

我们可以使用VB来实现一种特效屏保,下面的一段代码就是实现画面在漆黑的背景屏幕里滚动的效果,其设计思路是将整屏画面抓到一个窗体内,而将另一个窗体的背景置黑,首先创建两个窗体forml和form2,置AutoRedraw属性为True,BorderStyle属性为None(无边框),将form2的Backcolor置为黑色。在forml中编制程序如下:

 

Dim ScreenhWnd%,ScreenDC%,rc% //Windows API函数

补充:软件开发 , Vb ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,