ViÕt Code cho menu
Ta chØ cÇn viÕt code cho menu, sau ®ã dïng c¸c nót lÖnh ®Ó gäi menu t¬ng øng.
B©y giê chóng ta viÕt code cho môc Windows Explorer trong menu Windows. Vµo Windows chän Windows Explorer ®Ó viÕt code cho môc chän menu nµy.


B¹n gâ vµo ®o¹n sau:
|
Private Sub mnuWE_Click() ' dßng nµy cã s½n
End Sub ' dßng nµy cã s½n |
Gi¶i thÝch:
* Dim P
Khai b¸o 1 biÕn kiÓu variant ®Ó chøa trÞ tr¶ vÒ cña hµm Shell. §©y lµ kiÓu d÷ liÖu bao trïm tÊt c¶ c¸c kiÓu d÷ liÖu trong Visual Basic.
* P=Shell("explorer",vbNormalFocus)
Hµm Shell dïng ®Ó gäi mét ch¬ng tr×nh kh¸c thi hµnh
Có ph¸p Shell(pathname[,windowstyle])
pathname: lµ ®êng dÉn vµ file thùc thi cña ch¬ng tr×nh cÇn gäi. §©y lµ 1 x©u cho nªn khi viÕt b¹n ph¶i ®Æt chóng trong cÆp dÊu " " míi ®óng.
windowstyle: lµ h»ng sè qui ®Þnh phong c¸ch khi khëi ®éng cña ch¬ng tr×nh cÇn ch¹y. ThÝ dô: sau khi gäi ch¬ng tr×nh b¹n cÇn Maximize, Minimize ch¬ng tr×nh ®ã ... c¸c h»ng cã gi¸ trÞ vµ ý nghÜa nh sau:
|
Tªn h»ng |
Gi¸ trÞ |
ý nghÜa |
| vbHide | 0 | Window is hidden and focus is passed to the hidden window. |
| vbNormalFocus | 1 | Window has focus and is restored to its original size and position. |
| vbMinimizedFocus | 2 | Window is displayed as an icon with focus. |
| vbMaximizedFocus | 3 | Window is maximized with focus. |
| vbNormalNoFocus | 4 | Window is restored to its most recent size and position. The currently active window remains active. |
| vbMinimizedNoFocus | 5 | Window is displayed as an icon. The currently active window remains active. |
VËy cã thÓ viÕt l¹i hµm Shell nh sau Shell("explorer",1) cho gän
Lu ý: Trong phÇn pathname cña hµm
shell lý ra ph¶i ghi ®Çy ®ñ ®êng dÉn, thÝ dô
"C:\Windows\Explorer.exe" (gi¶ sö th môc windows lµ c:\windows)
thay v× "explorer.exe". Së dÜ ta cã thÓ ghi gän nh vËy lµ v×
Windows tù ®éng ®Æt dêng dÉn path ®Õn c¸c th môc nh: Windows;
Windows\system. Do ®ã chØ cÇn ghi explorer.exe cho tæng qu¸t (khái sî
sai ®êng dÉn khi ®em ch¹y trªn m¸y kh¸c).
B©y giê nhÊn F5 ®Ó ch¹y ch¬ng tr×nh, vµo menu Windows chän Windows Explorer, lËp tøc ch¬ng tr×nh Windows Explorer ®îc khëi ®éng.
T¬ng tù nh vËy b¹n cã viÕt code cho tÊt c¶ c¸c menu con cßn l¹i cña menu Windows.
Notepad.exe (Windows/Notepad)
Write.exe (Windows/WordPad)
Pbrush.exe (Windows/Paint)
§èi víi Paint vµ WordPad ta ph¶i dïng 2 file write.exe & pbrush.exe trong th môc Windows ®Ó khëi ®éng. Thùc ra 2 file nµy chØ cã chøc n¨ng gäi WordPad.exe vµ MSPaint.exe (trong th môc \Program Files\Accessories\) chø kh«ng ph¶i lµ file ch¬ng tr×nh chÝnh. Microsoft ph¶i lµm vËy ®Ó t¬ng thÝch víi c¸c ch¬ng tr×nh cò.
Cßn c¸c môc chän kh¸c b¹n còng viÕt hµm Shell t¬ng tù nhng ®êng dÉn ph¶i cô thÓ vµ chÝnh x¸c. ThÝ dô ®Ó viÕt code cho menu "Lac Viet td". Vµo VietNamese / Lac Viet td, gâ vµo
|
Private Sub mnuLV_Click()
End Sub |
Do file lvtd.exe cña m¸y t«i n»m trong th môc d:\tools\lvtd
NhÊn F5 ch¹y thö xem cã võa ý hay kh«ng ?
ViÕt code cho c¸c Command Button
B©y giê ta viÕt lÖnh cho c¸c CommandButton t¬ng øng. Yªu cÇu lµ viÕt code sao cho khi nhÊn vµo nót Windows th× menu Windows t¬ng øng sÏ hiÖn ra nh h×nh minh häa
VËy ph¶i viÕt lÖnh cho nót
+ Windows (cmdWin) gäi menu Windows (mnuWin)
+ Application (cmdApp) ---> mnuApp
+ VietNamese (cmdVN) ---> mnuVN
Double click vµo cmdWin (hay Right click chän View code tõ menu popup), gâ vµo
|
Private Sub cmdWin_Click()
End Sub |
Gi¶i thÝch:
popupmenu mnuWin hµnh vi (method) popupmenu dïng ®Ó hiÓn thÞ menu cã tªn mnuWin
T¬ng tù cho 2 nót lÖnh cßn l¹i. Khi ch¹y thö ch¬ng tr×nh b¹n click vµo nót lÖnh nµo sÏ xuÊt hiÖn menu t¬ng øng. Tõ ®©y ngêi dïng cã thÓ chän lÖnh tõ menu popup hay menu pulldown (menu kÐo xuèng) ®Òu ®îc.
ViÕt lÖnh cho nót Exit nh sau:
Private Sub cmdExit_Click()
End
End Sub
Lµm cho ch¬ng tr×nh tù ®éng tho¸t
NÕu ®ang ë chÕ ®éng tù ®éng tho¸t (môc Unload after 20 Sec ®îc chän) sau 20 gi©y ch¬ng tr×nh sÏ tù ®éng tho¸t, kh«ng cÇn chóng ta can thiÖp. §Ó lµm ®îc viÖc nµy ta ph¶i dïng Timer vµ Picture box (picIns, picOut) ®· t¹o tõ tríc.
![]()
Sau khi ch¬ng tr×nh khëi ®éng hoÆc khi check vµo checkbox. Mçi gi©y ®é réng hiÖn t¹i cña picIns céng víi ®é réng cña picOut/20 (v× 20 gi©y), cho ®Õn khi ®é r«ng cña picIns = picOut th× dõng ch¬ng tr×nh. NÕu kh«ng check chøc n¨ng tù ®éng tho¸t kh«ng ho¹t ®éng.

Chóng ta tiÕn hµnh viÕt code cho c¸c ®èi tîng nh sau
T×nh huèng Form_Load() sÏ ®îc kÝch ho¹t khi ch¬ng tr×nh khëi ®éng, timer ho¹t ®éng víi trÞ interval = 1000 (t¬ng ®¬ng 1 gi©y), ®é réng picIns ban ®Çu lµ 0.
Private Sub Form_Load()
Timer1.Interval = 1000
PicIns.Width = 0
End Sub
Khi ngêi dïng Click vµo check box. NÕu cã chän sÏ lµm cho timer ho¹t ®éng t¬ng tù nh Form_Load(), nÕu kh«ng chän th× cho timer ngõng.
Private Sub chkUnload_Click()
If chkUnload.Value = 1 Then
PicIns.Visible = True
Timer1.Interval = 1000
Else
Timer1.Interval = 0
PicIns.Visible = False
End If
PicIns.Width = 0
End Sub
KiÓm tra xem ®é réng picIns >= picOut hay kh«ng. NÕu cã, kÕt thóc ch¬ng tr×nh (End), nÕu kh«ng tiÕp tôc t¨ng ®é réng picIns theo chu kú mçi gi©y 1 lÇn.
Private Sub Timer1_Timer()
If PicIns.Width >= PicOut.Width Then
End
Else
PicIns.Width = PicIns.Width + PicOut.Width / 20
End If
End Sub
Ch¹y thö ch¬ng tr×nh xem nã cã tù ®éng tho¸t kh«ng. Thö click vµo check box xem cã ho¹t ®éng nh mong muèn cha.
T« son ®iÓm phÊn
Thªm vµi lêi nh¾c nhì
Chóng ta cßn sãt 1 ®èi tîng lµ lblMsg (Label box) cha sö dông ®Õn. Label box nµy ta dïng ®Ó in c©u th«ng b¸o híng dÉn mçi khi ngêi dïng rª Mouse qua c¸c Command Button.
ThÝ dô nh: Khi rª mouse trªn nót Windows th× c©u th«ng b¸o sÏ lµ "C¸c øng dông chuÈn cña Windows" ch¼ng h¹n. §Ó lµm ®îc ®iÒu nµy ta h·y kh¶o s¸t t×nh huèng MouseMove cña ®èi tîng, cô thÓ lµ cña Command Button vµ Form. Right click vµo nót Windows, chän View code, chän t×nh huèng MouseMove.
Private Sub cmdWin_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
lblMsg.Caption = "Run Windows Utilities (Accessories group)"
End Sub
HiÓn thÞ c©u th«ng b¸o Run Windows Utilities (Accessories group) trong lblMsg khi mouse di chuyÓn trªn nót Windows. Mét c¸ch t¬ng tù b¹n cã thÓ lµm cho c¸c button cßn l¹i.
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
lblMsg.Caption = "Please, select a program to start your work."
End Sub
HiÓn thÞ c©u th«ng b¸o Please, select a program to start your work. trong lblMsg khi mouse di chuyÓn phÝa trªn form
Khi ch¹y ch¬ng tr×nh, b¹n thö rª mouse lªn c¸c button sÏ thÊy néi dung cña lblMsg thay ®æi liªn tôc (hiÓn thÞ c¸c c©u th«ng b¸o cña chÝnh b¹n).
Lµm sao ®Ó form khëi ®éng ë gi÷a mµn h×nh
§èi víi Visual Basic version 5 & 6, th× chuyÖn nµy rÊt dÔ nhng cã vÎ bÝ hiÓm. B¹n chØ cÇn right click lªn cöa sæ Form Layout (nÕu cha hiÓn thÞ h·y bËt lªn b»ng c¸ch View\Form Layout Window) chän Startup Position, chän Center Screen lµ xong ngay.

Kh«ng nh÷ng thÕ, b¹n cßn cã thÓ tù hiÖu chØnh vÞ trÝ form sÏ hiÓn thÞ trªn mµn h×nh khi ch¹y mét c¸ch rÊt trùc quan. Cßn nÕu b¹n kho¸i thñ c«ng, h·y thªm dßng lÖnh nµy vµo t×nh huèng FormLoad cña form cÇn canh gi÷a mµn h×nh nh sau.
Private Sub Form_Load()
Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2
End Sub
C¸ch nµy ¸p dông cho mäi phiªn b¶n cña Visual Basic.
Cuèi cïng b¹n chØ dÞch ra file EXE ®Ó ch¹y.
Chóc b¹n thµnh c«ng !
NguyÔn Hå Thiªn §¨ng, 03 th2 2002 05:51 CH
thdang@tlnet.com.vn
PcLeHoan
1996 - 2002
Mirror :
http://www.pclehoan.com
Mirror :
http://www.lehoanpc.net
Mirror :
http://www.ktlehoan.com