国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
vb訪問SQL Server 的幾種常用方法
摘要
本文討論了Visual Basic應(yīng)用程序訪問SQL Server數(shù)據(jù)的幾中常用的方法,分別說明了每種方法的內(nèi)部機理
并給出了每種方法的一個簡單的實例,最后比較了每種方法的性能和優(yōu)缺點。

               引言
Microsoft Visual Basic(簡稱VB)作為一種面向?qū)ο蟮目梢暬幊坦ぞ?,具有簡單易學(xué)的,靈活方便和易于
擴充的特點。而且Microsoft為其提供了與SQL Server通信的API函數(shù)集及工具集。因此它越來越多地用作大型公
司數(shù)據(jù)和客戶機—服務(wù)器應(yīng)用程序的前端。與后端的
Microsoft SQL Server相結(jié)合,VB能夠提供一個魯棒的、高性能的客戶機—服務(wù)器方案。
使用Visual Basic作為前端開發(fā)語言,與SQL Server接口有三種常用的方法,即:
   *數(shù)據(jù)訪問對象/Jet
   *為ODBC API編程
   *使用SQL Server的Visual Basic庫(VBSQL)為DB庫API編程
本文將討論這三種VB應(yīng)用程序管理SQL Server數(shù)據(jù)的方法,并比較每種方法的性能和優(yōu)缺點。

方法1.數(shù)據(jù)訪問對象/Jet
Visual Basic支持Data Access Objects(DAOs)的子集。DAO的方法雖然不是性能最好的管理客戶機—服務(wù)器
之間的對話方式,但它確有許多優(yōu)點。使用DAOs訪問SQL Server的過程如下:應(yīng)用程序準(zhǔn)備好語句并送至Jet,
Jet引擎(MASJT200.DLL)優(yōu)化查詢,載入驅(qū)動程序管理器并與之通訊,驅(qū)動程序管理器(ODBC.DLL)通地調(diào)用驅(qū)動
器(SQLSRVR.DLL)的函數(shù),實現(xiàn)連接到數(shù)據(jù)源,翻譯并向SQL Server提交SQL語句且返回結(jié)果。下面是一個用DAOs
訪問SQL Server的VB實例。
‘form Declarations
Dim mydb As Database
Dim mydynaset As Dynaset

Private Sub form_Load()
   Set mydb=OpenDatabase("",Fa|se,Fa|se,"ODBC;DSN=Myserver;WSID=LCL;DATABASE=sa|es")
   Set mydynaset=mydb CreateDynaset("Select*from Customers")
End Sub
上述例子是以非獨占、非只讀方式打開sales數(shù)據(jù)庫,并檢索Customers表中的所有字段。OpenDatabase函數(shù)
的最后一個參數(shù)是ODBC連接字符串參數(shù),它指明了Microsoft Access連接到SQL Server所需要知道的一些內(nèi)容。
其中“DSN”為數(shù)據(jù)源名,“WSID”為工作站名,“DATABASE”為所要訪問的數(shù)據(jù)庫名。

方法2.用ODBC API編程
ODBC(Open Database Connectivity)的思想是訪問異種數(shù)據(jù)庫的一種可移植的方式。與數(shù)據(jù)資源對話的公用
函數(shù)組裝在一個稱為驅(qū)動程序管理器(ODBC.DLL)的動態(tài)連接中。應(yīng)用程序調(diào)用驅(qū)動程序管理器中的函數(shù),而驅(qū)動
程序管理器反過來通過驅(qū)動器反過來通來驅(qū)動器(SQLSRVR.DLL)把它們送到服務(wù)器中。
用ODBC API編程,一般要用到以下一些函數(shù)。下面列出了常用的函數(shù)以及它們的功能。
   函數(shù)                  功能
   SQLALLocEnv         初始化ODBC環(huán)境,返回環(huán)境句柄
   SQLALLocConnect      為連接句柄分配內(nèi)存并返回連接句柄
   SQLConnect         連接一個SQL數(shù)據(jù)資源
   SQLDriverConnect     連接一個SQL數(shù)據(jù)資源,允許驅(qū)動器向用戶詢問信息
   SQLALLocStmt          為語句句柄分配內(nèi)存并返回語句句柄
   SQLExecDirect         把SQL語句送到服務(wù)器
   SQLFetchAdvances     到結(jié)果集的下一行(或第一行)
   SQLGetData          從結(jié)果集的特定的一列取回數(shù)據(jù)
   SQLFreeStmt          釋放與語句句柄相關(guān)的資源
   SQLDisconnect          切斷連接
   SQLFreeConnect      釋放與連接句柄相關(guān)的資源
   SQLFreeEnv          釋放與環(huán)境句柄相關(guān)的資源
下面的代碼使用上面一些函數(shù)先登錄到一個服務(wù)器數(shù)據(jù)庫,并為隨后的工作設(shè)置了
語句句柄。
G|oba| giHEnv As Long
G|oba| giHDB As Long
G|oba| giHStmt As Long
Dim myResult As integer
Dim myConnection As Srting
Dim myBuff As String*256
Dim myBufflen As Integer
If SQLA||ocEnv(giHEnv)<>SQL_SUCCESS Then
   MsgBox"A||ocation couldn‘t happen!"
End if
if SQL||ocConnect(giHEnv,giHDB)<>SQL_SUCCESS Then
   MsgBox "SQL Server couldn‘t connect!"
End if
myConnection="DSN=myServer;UID=|c|;PWD=;APP=ODBCTest;WS|D=LCL;DATABASE=sales"
myResult=SQLDriverConnect(giHDB,Test,form1.hWnd,myConnection.len(myConnection),
myBuff,256,myBufflen,SQL_DRIVER_COMPLETE_REQUIED)
myResult=SQLA||ocStmt(giHDS,giHStmt)
myResult=SQLFreeStmt(giHStmt,SQL_COLSE)
rsSQL="Select*from Customers Where City="Wuhan""
myResult=SQLExecDirect(giHStmt,rsSQL,Len(rsSQL))

方法3.使用VBSQL對DB庫API編程
DB庫是SQL Server的本地API,SQL Server的Visual Basic庫(VBSQL)為Visual Basic程序員提供API。
從一定意義上說,VBSQL是連接Visual Basic程序到SQL Server的性能最好最直接的方式。VBSQL包含以下
三個文件:
   VBSQL.VBX 包含庫函數(shù),具有訪問重要的消息和處理錯誤的能力
   VBSQL.BI 包括所有的常量和變量說明
   VBSQL.HLP Windows幫助文件,使用VBSQL的指南
使用VBSQL時,必需將VBSQL.BI加入到Visual Basic工程文件中,并確保VB程序運行時有VBSQL.VBX文件。
一個典型的VBSQL對話中,一般要用到以下這些函數(shù)。
   函數(shù)                  功能
   Sq||nit          在客戶機上裝載DB庫
   Sq|OpenConnection      打開服務(wù)器連接,返回連接句柄
   Sq|Cmd          在客戶機上建立批處理命令
   Sq|Exec          向服務(wù)器提交批處理命令
   Sq|rexu|ts          把客戶機定位在第一條(或下一條)結(jié)果集的開端
   Sq|NextRow          驅(qū)動每個結(jié)果集的行之間的循環(huán)
   Sq|Data          訪問一個特定列的數(shù)據(jù)
   Sq|C|ose          切斷特定的連接
   Sq|Exit          切斷所有找開的連接
   Sq|WinExit         卸下DB庫
一般的DB庫API編程的過程是這樣的:先通過調(diào)用SqlInit對DB庫進行初始化,再調(diào)用SqlConnection打開
一個連接,然后就可做一些工作。下面的代碼是一個初始化DB庫并登錄到服務(wù)器的通用例程。
Private Sub |nitia|izeApp|ication()
   DBL|B-VERS|ON●=Sq||nit●()
   |f DBL|B_VERS|ON●=""Then
       MsgBox"Could not initia|ize DBL|B!Exit app|ication.",MB_|CONEXCLAMAT|ON
       End
   End if
End Sub
Private Function LoginToServer() As integer
   loginToServer=SUCCEED
   Status%=Sq|SetloginTime%(loginTimeOut)
   |f giSq|Conn<>0 Then
       Sq|C|ose(giSq|Conn) ‘關(guān)閉已打開的連接
giSq|Conn=Sq|OpenConnection(gsServerName,gsLogin|D,gsPassword,ProgramName●,ProgramName●)
   |f giSq|Conn<>o Then
       |iresu|t=Sq|Use(giSq|Conn,"Sales")
   Else
       LogintoServer=FA|L
   End |f
End Function

性能比較
以上三種訪問SQL Server的方法各有各的特點。DAOs方法是基于對象的,因而便于使用,但是它從Visual Basic
到SQL Server的最慢的方式。ODBC API和VBSQL方法從本質(zhì)上講是基于程序的。ODBC API方法通用性好,允許最強的
互操作性,編程簡單,但速度慢于VBSQL方法。VBSQL方法通過VBSQL控件,提供了重要的SQL Server前端應(yīng)用程序所
需的靈活性、強大功能和良好性能。它具有真正的事件驅(qū)動及錯誤處理能力,完全支持異步處理、游標(biāo)和計算列等。
這些都是VBSQL方法超出其它方法的優(yōu)勢,但其編程稍復(fù)雜。至于實際使用哪一種接口方式,在很大程度上依賴于用
戶的應(yīng)用程序的具體情況而定。  

                                     王生 推薦

二.鎖住計算機直到輸入正確的密碼。              作者:juhalepola

‘這是一個十五歲的芬蘭少年提供的程序(He is from Finland.).

Option Explicit
Dim ter As Boolean

Private Sub Command1_Click()
ter = False
DisableCtrlAltDelete (False)
Unload form1
End Sub


Private Sub form_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Timer1.Enabled = False
Timer2.Enabled = True
Text1.Enabled = True
End If
End Sub

Private Sub form_Load()
DisableCtrlAltDelete (True)
ter = True
End Sub


Private Sub form_LostFocus()
form1.SetFocus
End Sub


Private Sub form_Unload(Cancel As Integer)
If ter = True Then
Cancel = 5
Else
End If
End Sub


Private Sub Timer1_Timer()
form1.SetFocus
Label2.Caption = 5
End Sub


Private Sub Timer2_Timer()
Label2.Caption = Val(Label2.Caption) - 1 & " Seconds time to write a password."
Text1.SetFocus
If Text1.Text = "mouse" Then
ter = False
Timer2.Enabled = False
Timer1.Enabled = False
Label2.Caption = "5"
MsgBox "Password accepted, you can close this programm now."
Text1.Enabled = False
Command1.Enabled = True
End If
If Val(Label2.Caption) = 0 Then
Timer1.Enabled = True
Timer2.Enabled = False
Text1.Text = ""
Text1.Enabled = False
Command1.Enabled = False
End If
End Sub

‘ MyModule has the following functions/subs
‘ Subs:
‘ OpenApp(FileName as string)
‘ * Opens an application with the filename specified
‘ * Use: OpenApp(FileName)
‘ DisableCtrlAltDelete(bDisabled As Boolean)
‘ * Disables Control Alt Delete Breaking as well as Ctrl-Escape
‘ * Use: Call DisableCtrlAltDelete(Boolean)
‘ Center(formName as form)
‘ * Centers the specified form
‘ * Use: Center(formName)
‘ AlwaysOnTop(formName as form, bOnTop as boolean)
‘ * Sets the named form as always on top
‘ * Use: Call AlwaysOnTop(True)
‘ ExitWindows(Mode)
‘ * Shutdown or reboots windows
‘ * Use: ExitWindows(shutdown)
‘ * ExitWindows(reboot)


‘ Used for DisableCtrlAltDelete
Private Declare Function SystemParametersInfo Lib _
"user32" Alias "SystemParametersInfoA" (ByVal uAction _
As Long, ByVal uParam As Long, ByVal lpvParam As Any, _
ByVal fuWinIni As Long) As Long
‘-------------------------------------------

‘ Used for ExitWindows
Const EWX_LOGOFF = 0
Const EWX_SHUTDOWN = 1
Const EWX_REBOOT = 2
Const EWX_FORCE = 4
Private Declare Function ExitWindowsEx Lib "user32" _
(ByVal uFlags As Long, ByVal dwReserved _
As Long) As Long
‘ ---------------------

‘ Used for AlwaysOnTop
Const FLAGS = 3
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Public SetTop As Boolean
Private Declare Function SetWindowPos Lib "user32" (ByVal h%, ByVal hb%, ByVal X%, ByVal Y%, ByVal cx%, ByVal cy%, ByVal f%) As Integer
‘-------------------------------------------

Sub ExitWindows(ExitMode As String)
Select Case ExitMode
Case Is = "shutdown"
t& = ExitWindowsEx(EWX_SHUTDOWN, 0)
Case Is = "reboot"
t& = ExitWindowsEx(EWX_REBOOT Or EXW_FORCE, 0)
Case Else
MsgBox ("Error in ExitWindows call")
End Select

End Sub
Sub AlwaysOnTop(formName As form, bOnTop As Boolean)
‘Sets a form as always on top
Dim Success As Integer
If bOnTop = False Then
Success% = SetWindowPos(formName.hWnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS)
Else
Success% = SetWindowPos(formName.hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS)
End If
End Sub




Sub Center(formName As form)
‘ Center forms...
‘Move (Screen.Width - formName.Width) \ 2, (Screen.Height - formName.Height) \ 2
End Sub
Sub DisableCtrlAltDelete(bDisabled As Boolean)
‘ Disables Control Alt Delete Breaking as well as Ctrl-Escape
Dim X As Long
X = SystemParametersInfo(97, bDisabled, CStr(1), 0)

End Sub

Sub OpenApp(File As String)
‘Shells to another application
X = Shell(File)
End Sub
                                             返回

三. VB應(yīng)用程序編制實例
 
VB自問世以來,已從1.0版步入到功能十分強大的5.0版。VB以其開發(fā)軟件周期短、操作簡單、可視化程度高的優(yōu)點倍受編程人員的青睞。近幾年來,許多Windows程序員應(yīng)用VB作為編程語言,開發(fā)了大量的應(yīng)用軟件。本文通過幾個實例說明了VB的強大功能。

(一)、工具棒的建立方法

Windows應(yīng)用程序的操作界面都含有大量的圖標(biāo),這些圖標(biāo)集中放在某一個區(qū)域形成工具棒(Toolbars), 工具棒中的圖標(biāo)用圖示的方法表示某一種功能,可以加速操作,在某些Windows應(yīng)用程序中還把這些工具棒直接稱為加速棒(Speedbars)。下面介紹編制工具棒的方法。

在窗體上畫一個足夠大的圖片框,使用這個圖片框可以存放圖標(biāo)。設(shè)置圖片框的Align屬性,使圖片框列在窗口的頂部,即[窗體名][控件名]Align=1

在圖片框中增加影像控件(Image Control)數(shù)組或者三維命令控制按鈕數(shù)組(3D Command Button Control)。改變控件的Picture屬性,輸入圖形,圖形的格式為:*.BMP,*.DIB,*.WMF,*.ICO。

下面的實例介紹了工具棒的建立方法,具體步驟為:

1.建立一個圖片框,取名為Demo(即Name屬性為Demo),設(shè)置Align屬性,即 Demo.Align=1

2.在圖片框上增加三維命令按鈕,設(shè)置Name屬性為Tool,設(shè)置Index的屬性為0(第一個控件),改變 Picture 屬性,輸入圖示化的圖形(文件)。改變提示信息,設(shè)置Caption取值為空。

3.增加三維命令按鈕控件,設(shè)置Name屬性為Tool,注意使Index屬性分別為1,2,……。

4.建立窗體Paint事件過程

Sub formPaint()

Demo.ScaleHeight = Tool(0).Height ‘設(shè)置工具棒的高度

iw% = Tool(0).Width ‘獲取第一個圖標(biāo)的寬度,用于設(shè)置其他的圖標(biāo)寬度

For i% = 0 To 3

Tool(i%).Height = Demo.Scaleheiht

Tool(i%).Width = iw%

Tool(i%).AutoSize = 1 ‘設(shè)置圖標(biāo)中的圖形充滿整個圖形框

Tool(i%).Move iw% * i%, 0 ‘重新排列所有圖標(biāo)的位置

Next i%

End Sub

5.建立圖標(biāo)事件過程

為工具棒中的每一個圖標(biāo)增加一個過程,執(zhí)行相應(yīng)的命令:

Sub Tool_Click(index As Integer)

If index = 0 Then

Tool (0). Picture = Load(″animal.bmp″) ‘更換第一個圖標(biāo)中圖像

ElseIf index = 1 Then

j% = Shell(″calc.exe″, 1) ‘執(zhí)行WINDOWS95計算重新CALC.EXE

ElseIf index = 2 Then

End ‘中止程序的執(zhí)行

End If

End Sub

在實際應(yīng)用中,程序員可以發(fā)揮自己的想象力,從而完善工具棒的功能。

(二)、Windows演示程序的編程方法

Windows應(yīng)用軟件系統(tǒng)中教學(xué)演示程序,在整個系統(tǒng)中占有十分重要的地位,它從一個側(cè)面反映了應(yīng)用軟件的功能和用戶界面。下面介紹了使用VB編制演示軟件的語言基礎(chǔ),并列舉實例說明。

(三)、演示軟件激活語言軟件的方法

應(yīng)用軟件可以通過演示程序激活,無論該應(yīng)用程序是否是用戶自己編制的程序。例如,用戶可以通過演示激活字處理軟件Word for Windows。應(yīng)用軟件的激活可以依照應(yīng)用軟件所處狀態(tài)使用Shell函數(shù)或AppActivate命令激活。

1.Shell函數(shù)的使用

Shell函數(shù)可以運行一個執(zhí)行程序(即應(yīng)用程序),類似在“文件管理器”的“文件”菜單中運行一個程序,Shell函數(shù)的使用語法是:

Shell(commandstr$,winstyle%)

其中,commandstr$是一個包含有路徑的可執(zhí)行文件字符串,winstyle%是決定運行窗口類型的參數(shù)。例如

j%=Shell(″c:\win\write.exe″,1)

該句啟動Windows中“Write”應(yīng)用軟件,窗口類型為具有輸入焦點的正常窗口,它的返回值在VB中不使用。

2.AppActivate命令的使用

AppActivate命令可以把Windows的焦點移向指定的應(yīng)用程序,若該應(yīng)用程序沒有啟動,AppActivate也不能啟動,且此時會出現(xiàn)運行錯誤,使用AppActivate的語法是:

AppActivate titletext$

titletext$是應(yīng)用出現(xiàn)的標(biāo)題(窗口頂部的第一行文字),對大小寫不敏感。例如:

AppActivate“calculator”or AppActivate“CALCULATOR”

這兩句都能夠把Windows的焦點移向“計算器(Calculator)”,即把計算器從后臺調(diào)入前臺。對于中文版Windows應(yīng)使用下面的命令:

AppActivate“計算器”

3.模擬輸入控制應(yīng)用程序

演示程序的關(guān)鍵是能使用代碼模擬手工輸入,控制應(yīng)用程序的運行過程。使用Sendkey命令可以模擬鍵盤輸入,使用方法為:

Senekey keyin$,Wait%

其中, keyin$為模擬輸入的控制字符串。Wait%為真(非零)時,說明其它程序運行模擬輸入完畢后,VB才繼續(xù)運行;Wait%為假時,說明VB命令一執(zhí)行( Send Keys),馬上繼續(xù)運行自己本身。Wait%可省略,缺省值為0。下面為兩實例:

SendKeys“%{F4}”,1

該句說明向應(yīng)用程序輸入<ALT>+<F4>,相當(dāng)于通過鍵盤鍵入了退出應(yīng)用程序的操作。

SendKeys“(Hello){Enter}”,1

相當(dāng)于通過鍵盤鍵入“Hello”,然后按回車鍵換行。
                                          sleet 推薦

四.VB中APP對象及其應(yīng)用   作者   韓潮涌 (四川)

初學(xué)VB編程,很快就能編出些實用的程序了。我便將它們制成安裝盤送給朋友,但很快就發(fā)現(xiàn)一個問題,程序總是按編程時固定好的路徑讀寫文件,但文件路徑改變,程序就找不到路徑了,因此不能正常寫文件。例如編程時設(shè)定:picture1.picture=Load Picture("c:\HVB\HAN.BMP")但若安裝使用時,工作目錄變?yōu)镋:\HVB\HAN.BMP或其它路徑,程序就會出錯,并提示:找不到文件路徑。這個問題看起來很復(fù)雜,但實際上很好解決,這只需用VB的App對象。
App對象有兩種重要屬性:(1)App.Path,它在VB編程狀態(tài)下返回你的.MAK文件所在目錄;在以.EXE文件運行時,則返回你的.EXE文件所在目錄。(2)App.EXE Name它返回你的程序名。下面舉一個簡單的例子,假如你有一個程序為DDC,其目錄為C:\HVB\DDC4(包括DDC.EXE)在VB編程環(huán)境下,在Debug窗口運行:Print App.Path,顯示結(jié)果:C:HVB\DDC4,再運行Print App.EXEName顯示結(jié)果:DDC。知道了以上兩種屬性,前面所述問題就很好解決了,可以將其修改為:Dim Apath ,Dim FilePath
Apath=App.Path
FilePath=Apath+"\HAN.BMP"
Picture1.Picture=LoadPicture(FilePath)
這樣,這程序的工作目錄無論改為什么,都能正常工作了。
(注:文件目錄為根目錄時,以上情況略有不同,App對象在VB2.0以上版本中均存在。)
   點評:推薦給大家的也是軟件實用化的一個小小改進。本文所討論的問題可能對于有數(shù)據(jù)庫操作的軟件尤具實際意義,看了本文你是否可以不必再為你的軟件指定固定的目錄了呢?


五.VB中實現(xiàn)窗口自由分割   作者:許振華
    大家可能注意到,目前Windows下的應(yīng)用軟件許多都具有窗口自由分割的功能,本文給出在VB中實現(xiàn)的方法。
  要實現(xiàn)窗口自由分割功能,需要用一個圖片框(Picture box)作為分割條,在程序運行時,將其放在兩個窗口之間,兩個窗口自動調(diào)整大小緊靠圖片框。當(dāng)用戶拉動分割條時,窗口自動調(diào)整大小,一直緊靠分割條,這樣似乎是一個窗口被分割條分開。下面是一個例子。
  在窗體中放入兩個列表框,一個圖片框,名字分別為list1、list2、pic1,對pic1的屬性設(shè)定如下:將mousepointer屬性設(shè)定為99(用戶自定義),將mouseicon設(shè)定為中間帶分割線的雙箭頭鼠標(biāo)形式,具體做法是單擊mouseicon后的(無),將會出現(xiàn)三個點,單擊這三個點將會打開文件對話框,一般來說,鼠標(biāo)樣式文件放在vb5\graphics\cursors文件夾中,找到Ve-sizeb,選中它即可。這是當(dāng)用戶將鼠標(biāo)移到分割條上或拉動分割條時鼠標(biāo)的形狀。窗體中這三個控件的位置可隨意放,因為在程序運行時自動設(shè)定它們的位置和大小。然后寫如下代碼:

  Option Explicit

  Private Const P_ECART=3

  Private y1 As Integer

  Private y2 As Integer

  Private x1 As Integer

  Private x2 As Integer

  Private width1 As Integer

  Private width2 As Integer

  Private height1 As Integer

  Private height2 As Integer

  Private glbfrmInSizeX As Long

  Private Sub pic1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)

  If glbfrmInSizeX <> &H7FFFFFFF Then

  If CLng(x) <> glbfrmInSizeX Then

  pic1.Move pic1.Left+x, y1,P_ECART,ScaleHeight-2

  glbfrmInSizeX = CLng(x)

  End If

  End If

  End Sub

  Private Sub pic1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)

  If glbfrmInSizeX <> &H7FFFFFFF Then

  If CLng(x) <> glbfrmInSizeX Then

  pic1.Move pic1.Left+x,y1,P_ECART, ScaleHeight-2

  End If

  glbfrmInSizeX = &H7FFFFFFF

  pic1.BackColor = &H8000000F

  If pic1.Left > 60 And pic1.Left < (ScaleWidth - 60) Then

  list1.Width=pic1.Left-list1.Left

  ElseIf pic1.Left < 60 Then

  list1.Width=60

  Else

  list1.Width=ScaleWidth-60

  End If

  form_Resize

  End If

  End Sub

  Private Sub pic1_MouseDown(Button As Integer, Shift As Integer, x As Single,y As Single)

  If Button=vbLeftButton Then

  pic1.BackColor=&H808080

  glbfrmInSizeX=CLng(x)

  Else

  If glbfrmInSizeX <>&H7FFFFFFF Then

  pic1_MouseUp Button,Shift,x,y

  End If

  glbfrmInSizeX=&H7FFFFFFF

  End If

  End Sub

  Private Sub form_Resize()

  Const B_ECART=1

  On Error Resume Next

  y1=B_ECART

  height1=ScaleHeight-B_ECART*2

  x1=B_ECART

  width1=list1.Width

  x2=x1+list1.Width+P_ECART-1

  width2=ScaleWidth-x2-B_ECART

  list1.Move x1-1, y1, width1, height1

  list2.Move x2,y1,width2+1,height1

  pic1.Move x1+list1.Width-1, y1,P_ECART, height1

  End Sub

  Private Sub form_Load()

  glbfrmInSizeX=&H7FFFFFFF

  form_Resize

  End Sub

  程序運行環(huán)境:VB 5.0中文版、中文WIN9X,VB 4.0/5.0/6.0 。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服