欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
VB愛(ài)好者樂(lè )園(VBGood) - 經(jīng)驗之談 - VB編程的必備技巧
VB編程的必備技巧
北京市西客站
黃立偉
---- 對編程者來(lái)說(shuō),VB很容易上手,但要深入、靈活地駕馭它還要下一番功夫。筆者在這里介紹幾個(gè)較為典型的編程技巧,希望能對廣大VB愛(ài)好者有所幫助。

---- 一.怎樣創(chuàng )建自定義的光標

---- 1.當在設計一個(gè)應用程序時(shí),Visual Basic允許程序員將許多控件的MousePointer屬性設計成12個(gè)預先定義好的鼠標光標之一。然而,有些程序員或許會(huì )希望顯示一個(gè)預定義形狀之外的光標。本文說(shuō)明如何創(chuàng )建一個(gè)不同的鼠標指針(光標),包括為一個(gè)沒(méi)有MousePointer屬性的控件創(chuàng )建光標。

----要在Visual Basic應用程序中將光標(鼠標指針)改變成個(gè)不同的形狀,可以添加代碼來(lái)改變希望監視的控件的MouseMove和DragOver事件。

----MouseMove事件所包含的代碼用于觸發(fā)該控件的Drag方法。當鼠標在被選中的控件上移動(dòng)的時(shí)候,輪流顯示新的鼠標指針。當鼠標指針離開(kāi)該控件時(shí),則DragOver事件被觸發(fā)。在Visual Basic程序中,可以重新復位此Drag屬性,以便以前的鼠標指針能夠被再次顯示出來(lái)。

---- 2.下面的樣例程序實(shí)現當鼠標指針移動(dòng)到一個(gè)文件列表框控件上時(shí),將其改變成不同的形狀。

---- 首先采用缺省的方法建立Form1。在Form1上添加一個(gè)文件列表框控件,采用缺省的方法建立File1。將File1控件的DragIcon屬性設置為所選擇的.ICO文件。

---- 將如下代碼添加到File1的MouseMove事件中:

Private Sub File1-MouseMove(ButtonAs
Integer, Shift As Integer, X As Single, Y As Single)
File1.Drag 1 注釋?zhuān)篿con on
End Sub
---- 將如下代碼添加到Form1的DragOver事件中:
Private Sub Form-DragOver(Source As Control,
X As Single, Y As Single, State As Integer)
File1.Drag 0 ′icon off
End Sub
---- 按下F5功能鍵執行此程序。得到的運行結果是:將鼠標指針移動(dòng)到該文件列表框控件上時(shí),程序將把所選中的.ICO文件作為缺省的鼠標光標;將鼠標指針離開(kāi)該控件時(shí),光標則會(huì )自動(dòng)恢復為缺省的形狀。
---- 二.怎樣在窗體上點(diǎn)鼠標右鍵產(chǎn)生一個(gè)彈出式選單(PopUp Menu)?

---- 大家都知道,在Windows95/98/2000的桌面和許多流行軟件的視窗中,當我們點(diǎn)鼠標右鍵時(shí),會(huì )在鼠標的當前位置彈出一個(gè)快捷選單。許多愛(ài)好編程的朋友是不是也希望能在自己的程序里有類(lèi)似的功能呢?其實(shí),這并不困難。筆者經(jīng)過(guò)一番努力,在VB下找出一個(gè)通用的方法,供大家分享。

---- 要實(shí)現上述功能,需分兩個(gè)步驟:

---- 1. 利用VB的選單編輯器(Menu Editor)編輯你希望彈出的選單及子選單,注意,要將選單的Visible屬性設置為:False。

---- 2. 在窗體(Form1)的MouseDown事件中編寫(xiě)程序,來(lái)激發(fā)編輯好的選單,假設選單名為PopMenu,程序源碼如下:

Private Sub Form-MouseDown
(Button As Integer, Shift As Integer,
X As Single, Y As Single)
If Button = vbRightButton Then
PopMenu.Visible = True
PopupMenu PopMenu
End If
End Sub
---- 上述方法是針對窗體的,我們也可以針對任意控件,用鼠標右鍵點(diǎn)擊控件時(shí),也彈出一個(gè)快捷選單。方法也很簡(jiǎn)單,只要把上述代碼放到相應控件的MouseDown事件中,就可以了。
---- 三.怎樣動(dòng)態(tài)地在窗體上判斷某區域內是否有控件存在?

---- 在筆者的一個(gè)小程序中,想在窗體的某個(gè)區域輸出數據,這就要求在這個(gè)區域內不能有其他控件存在,那么,怎么才能知道在窗體的某個(gè)區域內,是否有控件存在呢?

---- 為了判斷在窗體的某個(gè)區域中,是否含有控件,我們可以利用以下VB程序來(lái)實(shí)現:

Function GetControl(x1 As Single, y1 As Single,
x2 as Single, y2 as Single) As Control
Dim Control as Control
For Each Control In Form1
With Control
If (x1 〈= .Left) And (x2 〉= .Left) And _
(y1 〈= .Top) And (y2 〉= .Top) Or _
(x1 〈=.Left + Width) And (x2 〉= .Left + Width) And _
(y1 〈= .Top) And (y2 〉= .Top) Or _
(x1 〈= .Left) And (x2 〉= Left) And _
(y1 〈= .Top + Height) And (y2 〉= .Top + Height) Or _
(x1 〈= . Left + Width) And (x2 〉= .Left + Width) And _
(y1 〈= .Top + Height) And (y2 〉= .Top + Height) Then
Set GetControl = Control
Exit Function
End If End With
Next
Set GetControl = Nothing
End Function
---- 注:(x1, y1)和(x2, y2)分別為選定矩形區域的左上角和右下角點(diǎn)的坐標值。
---- 該程序通過(guò)計算窗體上所有控件的四個(gè)角的位置來(lái)判斷控件是否與選定區域相交,并返回相交的控件。

---- 四.獲取和修改計算機名字的方法

---- 在Win 95/98/2000中,計算機有一個(gè)名字。運行regedit,在"HKEY-LOCAL-MACHINE\System\CurrentControlSet\
control\ComputerName\ComputerName"中將發(fā)現"ComputerName"="Default"( 或其它字符串),在regedit下可以查看和修改這個(gè)名字。我們還可在程序中通過(guò)Win32API提供的GetComputerName、SetComputerName這兩個(gè)函數來(lái)查看和修改計算機的名字。下面以VB為例來(lái)探討如何編寫(xiě)一個(gè)可查看和修改計算機名字的程序。

---- 1.插入一個(gè)新模塊,在其中添加如下代碼:

′聲明 GetComputerName
Declare Function GetComputerName Lib″kernel 32″Alias″
GetComputerNameA″(Byval lpBuffer As
String,nSize As Long)As Long
′聲明 SetComputerName
Declare Function SetComputerName Lib″kernel 32″Alias ″
SetComputerNameA″(Byval lp ComputerName As String)As Long
′定義一個(gè)獲取計算機名字的函數
Public Function GetCName (CName) As Boolean
Dim sComputerName As String '計算機的名字
Dim lComputerName As Long
'計算機名字的長(cháng)度
Dim lResult As Long
'GetComputerName的返回值
Dim RV As Boolean
′GetCName返回值,若為T(mén)RUE則表示操作成功
lComputerNameLen=256
sComputerName=Space (lComputerNameLen)
lResult=GetComputerName (sComputerName,lCompputerNameLen)
If lResult 〈〉0 Then Cname=Left$ (sComputerName,lComputerNameLen)
RV=True
Else RV=False
End If
GetCName=RV
End Function
′定義一個(gè)修改計算機名字的函數
Public Function SetCName (CName ) As Boolean
Dim lResult As Long
Dim RV As Boolean
lResult=SetComputerName (CName)
If lResult 〈〉0 Then
RV=True′修改成功
Else RV=False
End If
SetCName=RV
End Function

---- 2.在窗體中添加一命令按鈕Command1,雙擊該按鈕并在其中添加如下代碼:
Sub Command1-Click ()
DIM CN AS String
x=GetCName (CN)
Print ″This Computer Name is :″,CN
CN=″MYCOMPUTER″
x=SetCName (CN )
Print ″Now the Computer name is :″,CN
End Sub

---- OK, 保存上述設置和代碼,然后按F5運行該程序。
---- 五.給VB控件PictureBox加滾動(dòng)條的方法

---- 用過(guò)PictureBox控件的朋友都知道,在其中我們可以加載圖片。當圖片不是很大時(shí),可能還不會(huì )有什么問(wèn)題,但是,如果所加載的圖片比PictureBox大時(shí),我們只能看到圖片的一部分,那么,怎么才能看到其他的部分呢?為了解決上述問(wèn)題,我們可以在圖片框(PictureBox)內部加上水平和垂直滾動(dòng)條,利用滾動(dòng)條來(lái)顯示看不到的圖片。具體方法如下:

----首先給工程(Project)添加一個(gè)OCX控件,單擊選單上的工程(Project)選單項,在彈出的下拉選單中點(diǎn)擊組件(Components),選中其中的"Microsoft Common Dialog Control 5.0",確定完成加載工作;然后畫(huà)一個(gè)PictureBox,采用VB提供的默認名字Picture1, 再在Picture1上面畫(huà)一個(gè)PictureBox,默認名字為Picture2,注意別忘了設置:Picture2.AutoSize=TRUE;接著(zhù),加上水平和垂直滾動(dòng)條,默認名字分別為:HScroll1,VScroll1;以后加載圖形到Picture2上,就可以了;最后,在窗體中引入其它控件:一個(gè)按鈕(Command),默認名為Command1和一個(gè)"Microsoft Common Dialog Control",默認名為CommonDialog1。具體VB代碼如下:

Private Sub Form-Load()
Picture2.Left = 0
Picture2.Top = 0
Picture2.Width = Picture1.Width
Picture2.Height = Picture1.Height
VScroll1.Min = 0
HScroll1.Min = 0
HScroll1.Min = 0
VScroll1.Max = Picture2.Height - Picture1.Height
HScroll1.Max = Picture2.Width - Picture1.Width
If HScroll1.Max 〈 0 Then HScroll1.Enabled = False
If VScroll1.Max 〈 0 Then VScroll1.Enabled = False
End Sub
Private Sub Command-Click()
On Error GoTo ErrExit
CommonDialog1.Filter =
"Bitmap file(*.bmp)|*.bmp|All File(*.*)|*.*"
CommonDialog1.FilterIndex = 1
CommonDialog1.ShowOpen
Picture2.Picture = LoadPicture(CommonDialog1.filename)
VScroll1.Min = 0
HScroll1.Min = 0
VScroll1.Max = Picture2.Height - Picture1.Height
HScroll1.Max = Picture2.Width - Picture1.Width
If HScroll1.Max 〈 0 Then HScroll1.Enabled = False
If VScroll1.Max 〈 0 Then VScroll1.Enabled = False
ErrExit:
End Sub
Private Sub HScroll1-Change()
Picture2.Left = -HScroll1.Value
End Sub
Private Sub VScroll1-Change()
Picture2.Top = -VScroll1.Value
End Sub
---- 該程序通過(guò)點(diǎn)擊Command1按鈕,在彈出的對話(huà)框中選擇一個(gè)圖形文件加載到Picture2中,利用水平和垂直滾動(dòng)條就可以實(shí)現圖片的滾動(dòng)。
---- 六.用VB做聊天程序的方法

---- 所謂"聊天"是指兩個(gè)程序能夠發(fā)送數據給對方。這個(gè)程序涉及到數據通訊的知識,仿佛很復雜,不過(guò),由于VB給我們提供了一個(gè)Winsock控件,問(wèn)題就變得很簡(jiǎn)單了。

---- 先編寫(xiě)"聊天(主機)"程序。在窗體里添加Winsock控件,并設置其Protocol屬性為1-SckUDPProtocol,其他屬性為缺省值。接著(zhù)添加兩個(gè)標簽和兩個(gè)文本框,設置兩個(gè)標簽的標題屬性分別為"接收窗"和"發(fā)送窗";兩個(gè)文本框的標題屬性為空。最后編寫(xiě)代碼:

---- 1."聊天(主機)"

Private Sub Form-Load()
′設置網(wǎng)絡(luò )地址
Winsock1.LocalPort=1024
Winsock1.RemoteHost="202.96.6.1"
Winsock1.RemotePort=1999
End Sub
Private Sub Text1-Change()
′發(fā)送用戶(hù)輸入的內容
Winsock1.SendData Text1.Text
End Sub
Private Sub Winsock1-DataArrival
(Byval bytesTotal As Long)
Dim rec As String
′接收對方數據并在文本框內顯示
Winsock1.GetData rec, vb String
Text2.Text=rec
End Sub

---- 2."聊天(副機)"

Private Sub Form_Load()
′設置網(wǎng)絡(luò )地址
Winsock1.LocalPort=1999
Winsock1.RemoteHost="202.96.6.1"
Winsock1.RemotePort=1024

---- 其他部分程序與(主機)相同。最后將兩個(gè)程序存盤(pán),并編譯成執行(.Exe)文件?,F在就可以使用這個(gè)程序進(jìn)行對話(huà)了。
---- 七.文本框中文本的某一特定字符或字符串同時(shí)高亮顯示的方法

---- 由于普通TextBox控件不支持不連續字符串的同時(shí)高亮顯示,所以我們選擇RichTextBox控件。單擊工程(Project)選單項,在彈出的下拉選單中單擊組件(Components)選單項,從彈出的對話(huà)框中選擇Microsoft Rich Textbox Control 5.0復選框,確定加載RichTextBox控件。

---- 新建(New)一個(gè)工程,在窗體(Form)上添加一個(gè)RichTextBox控件和兩個(gè)Command(按鈕)控件,都采用系統默認的Name屬性值;設置RichTextBox的Text屬性值為空,Command1和Command2的Caption屬性值分別設為"輸入文本"和"選擇字符串"。最后,添加如下VB代碼:

Private Sub Command1-Click()
Dim str As String
Dim Text As String
str=″輸入文本″
Text=InputBox(str)
RichTextBox1.Text=Text
End Sub
Private Sub Command2-Click()
Dim str As String
Dim Text As String
Dim Position As Integer
Dim Lenth As Integer
str=″輸入要高亮顯示的字符串″
Text=InputBox(str)
If Text 〈〉 ″″ Then
Position=InStr(RichTextBox1.Text, Text)-1
Lenth=Len(Text)
RichTextBox1.SelStart=Position
RichTextBox1.SelLength=Lenth
RichTextBox1.SelColor=RGB(255,0,0)
Do While InStr(Position+Lenth+
1, RichTextBox1.Text, Text) 〈〉 0
Position=InStr(Position+Lenth+
1, RichTextBox1.Text, Text)-1
RichTextBox1.SelStart=Position
RichTextBox1.SelLength=Lenth
RichTextBox1.SelColor=RGB(255,0,0)
Loop
End If
End Sub
   
---- 按F5執行程序,單擊"輸入文本"按鈕,在彈出的對話(huà)框中輸入一些文本,確定后,剛剛輸入的文本將顯示在RichTextBox中;再單擊"選擇字符串"按鈕,在彈出的對話(huà)框中輸入你希望高亮顯示的字符串,確定后,RichTextBox中相應的字符串將以紅色高亮顯示。
---- 八.編程實(shí)現Windows 95/98操作系統熱啟動(dòng)的方法

---- 要利用程序實(shí)現系統的重新啟動(dòng),可以在你的程序中調用API函數來(lái)實(shí)現。建一個(gè)子函數:(以VB為例)

Declare Function SystemParametersInfo Lib ″
user32″ Alias -
″SystemParametersInfo″ (ByVal uAction As Long,
ByVal uParam As Long,
ByVal lpvParam As Any, ByVal
fuWinIni As Long) As Long
Sub DisableCtrlAltDelete(bDisabled As Boolean)
Dim X As Long
X=SystemParametersInfo(97, bDisabled, CStr(1), 0)
End Sub
Call DisableCtrlAltDelete(true) ′禁止熱啟
Call DisableCtrlAltDelete(false) ′允許熱啟

---- 九.在Windows 95/ 98啟動(dòng)后自動(dòng)啟動(dòng)程序的方法
---- 我們都知道在Windows 95/98的"開(kāi)始"→"程序"選單下有一"啟動(dòng)"選單項,當每次啟動(dòng)Windows 95或Windows 98時(shí),系統都會(huì )自動(dòng)啟動(dòng)放在"啟動(dòng)"選單欄里的可執行程序。

---- 但目前有好多軟件,像解霸五、ICQ,以及大部分實(shí)時(shí)偵測病毒的軟件等等,安裝后,并沒(méi)有放在"啟動(dòng)"選單里,也能在啟動(dòng)操作系統時(shí)自動(dòng)啟動(dòng)。怎么實(shí)現的呢?

---- 其實(shí)只要知道Windows注冊表的一些知識,這個(gè)問(wèn)題就不能稱(chēng)之為問(wèn)題了。用鼠標單擊"開(kāi)始",打開(kāi)開(kāi)始選單,再單擊"運行",出現一對話(huà)框,然后輸入"regedit",確定后,會(huì )打開(kāi)系統注冊表編輯器,找到HKEY-LOCAL-MACHINE? SOFTWARE?Microsoft?Windows?CurrentVersion?Run,加入你的程序的入口,就可以了。如果不知道怎么加,就參考一下已經(jīng)存在的鍵值。

---- 十. 如何把數據文件輸出到Text控件中?如果數據量比較大,窗體滿(mǎn)屏也不夠大,怎么解決?

---- 有一個(gè)比較簡(jiǎn)單的方法,就是把數據放到一個(gè)文本框(Text)里,并在其中加上水平和垂直滾動(dòng)條。具體實(shí)現步驟為:先在窗體(Form)里加入一個(gè)文本框,采用默認名Text1;然后,設置文本框Text1的屬性:Text屬性設置為空,MultiLine屬性設置為T(mén)rue,ScrollBars屬性設置為3-Both;接著(zhù)添加如下VB代碼:

Private Sub Form-Load()
Dim Handle As Integer
Dim FileName As String
On Error GoTo ErrExit
begin:
′輸入要顯示的數據文件的名稱(chēng)
FileName=InputBox$(″Input Filename″,
″Open File″)
On Error GoTo FileErr
Handle=FreeFile
Open FileName For Input As #Handle
′把數據文件中的數據輸出到文本框中
Text1.Text=Input$(LOF(Handle), Handle)
Close #Handle
Exit Sub
FileErr:
Dim ErrNum As Integer
If Err.Number=53 Then
ErrNum=MsgBox(″File not exist″,
vbOKCancel, ″Error Information″)
If ErrNum=1 Then
GoTo begin
Else
Exit Sub
End If
End If
MsgBox Err.Description, , ″file open failed″
ErrExit:
Exit Sub
End Sub
′使文本框充滿(mǎn)整個(gè)窗體
Private Sub Form-Resize()
Text1.Left=0
Text1.Top=0
Text1.Width=Form1.Width-100
Text1.Height=Form1.Height-400
End Sub
---- 通過(guò)這樣的處理,不僅能解決問(wèn)題,而且用戶(hù)還可以在文本框中對數據進(jìn)行編輯。
---- 十一.關(guān)聯(lián)文件列表框、目錄列表框和驅動(dòng)器列表框的方法

---- 想做一個(gè)對話(huà)窗體,包含驅動(dòng)器列表框、目錄列表框和文件列表框,并能實(shí)現三者的同步操作,怎么做?這都是我們在實(shí)際應用中經(jīng)常會(huì )遇到的問(wèn)題,在VB中解決這個(gè)問(wèn)題非常簡(jiǎn)單,可以通過(guò)Path屬性的改變引發(fā)Change事件來(lái)實(shí)現。例如:

Sub Dir1-Change()
File1.Path=Dir1.Path
End Sub

---- 該事件過(guò)程使窗體上的目錄列表框Dir1和文件列表框File1產(chǎn)生同步。因為目錄列表框Path屬性的改變將產(chǎn)生Change事件,所以在Dir1-Change事件過(guò)程中,把Dir1.Path賦給File1.Path,就可以產(chǎn)生同步效果。類(lèi)似地,增加下面的事件過(guò)程,就可以使三種列表框同步操作:
Sub Drive1-Change()
Dir1.Path=Drive1.Drive
End Sub

---- 該過(guò)程使驅動(dòng)器列表框和目錄列表框同步,前面的過(guò)程使目錄列表框和文件列表框同步,從而使三種列表框同步,問(wèn)題即可解決。 
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
自己用VB編制的上位機(MSComm控件)
VB編程常見(jiàn)問(wèn)題_VB系統和窗體控制_VB程序設計
access+ado+flexgrid實(shí)例
(1) VB編程基礎
全國計算機二級VB復習資料
VB學(xué)習之路
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久