You are on page 1of 6

Th thut nh trong VB p10

ng m khay a CD-Rom Bn c mun vit mt tin ch ng m khay a CD-Rom cho ring mnh khng ? Nn bn c th vi dng code sau y s gip bn toi nguyn. Lu : Chng trnh ny ch tc dng ti CD u tin trn h thng ca bn ( c tn gn vi tn Partition cui cng ca my).

- To mt Project mi. - Khai bo hm API sau trong Form1. Option Explicit Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hWndCallback As Long) As Long To thm hm vbmciSendString() nhn thng ip ng/m khay CDROM. Hm ny tr v mt String. Function vbmciSendString(ByVal Command As String, ByVal hWnd As Long) As String Dim Buffer As String Dim dwRet As Long Buffer = Space$(100) dwRet = mciSendString(Command, ByVal Buffer, Len(Buffer),hWnd) vbmciSendString = Buffer End Function To ln lt 2 Command Button v t Caption cho chng l: "Open" & "Close". Sau y l m tng ng cho 2 nt lnh . Private Sub Command1_Click()

Dim Dummy As String Dummy = vbmciSendString("set cdaudio door open", 0) End Sub Private Sub Command2_Click() Dim Dummy As String Dummy = vbmciSendString("set cdaudio door closed ", 0) End Sub Nh vy Command1 dng m khay CD, cn Command2 th ng khay. Hy save li & cho chy th chng trnh xem. Hy p dng nhng th thut ca cc bi trc thit k cho chng trnh chy thng tr trong Windows, th hin thnh 1 Icon System Tray tin s dng. Nht nh n s hu ch khi bn lm bing th tay nhn nt Eject hoc ci nt qui qu khng cn tc dng. Ring ti ci tin ch ny cc k tin, do ci thng my (CPU) ti t di gm bn, mun ly CD ra phi khom ngi nhn nt, ri ch (mt hai giy thi cng lm ti nng rut). Vi tin ch ch vic click chut khi no nghe ting khay bung ra .... tht tin li. Ty bin Command Button Command Button l 1 trong nhng control thng dng nht trong Windows ni chung & trong VB ni ring. Mt chng trnh n gin no hu nhng cng c i tng ny. Tuy vy n cng c nhng vng mt ch chng phi n gin u. Sau y l vi thc mc ca mt bn t hc VB. Ti mun ph bin cng cc bn ang t hc VB khc. Cu hi 1: Ti sao khi ti thay i mu BackColor ca Command Button thnh mt mu khc (mu mc nhin ca Windows) nhng n vn tr nh , chng thy thay i theo s la chn ca ti. Tr li: Command Button ch thay i mu Backcolor khi thuc tnh Style ca n c t l 1-Graphical m thi. Mc nhin l 0-Standard. iu ny cng tng t nh thuc tnh Picture, khi bn gn mt hnh nh cng phi gn cho thuc tnh Style l 1-Graphical th bc nh mi hin ln, nu khng th chng thy thay i g. Cu hi 2: Lm sao thay i mu TextColor (Mu ca dng Text trn Command Button - Caption) ca Command Button ? Tr li: Trong ch Design ca VB khng c thuc tnh no cho php ta thay i mu TextColor, v khi thi hnh chng trnh cng vy. Ni tm li trong mi trng pht trin ca VB bn khng th no thay i mu TextColor ca Command Button c.

Do vy ta phi tm mt hng khc. Ti xin ngh 2 cch sau y: * Custom Control: Bn c th t thit k, iu ny i hi bn phi c kh nng to ActiveX (cng to bng VB). Hay bn c th tm nhng ActiveX c thit k sn, v b sung vo ng dng ca mnh (Internet l ni chc chn bn phi tm n, nu khng c iu kin, hy lc li trn cc CD free code bn cc ca hng). Nhng theo ti bit, trong b VB 4 (Version 32bit) c mt custom control tn l Sheridan 3D Controls (THREED32.OCX) bn c th d dng tm tm thy hn. Bao gm cc i tng sau:

SSCheck SSFrame SSPanel SSRibon SSCommand v SSOption

Bao gm rt nhiu thuc tnh cho php ta chn mu sc, c c thuc tnh cho php gn hiu ng cho Text na. Tht l th. Xem th giao din * T v ly Command Button: Cch ny th ai cng c th lm, nhng p hay xu l do ph thuc vo kh nng v ca bn. Cch lm nh sau: T bn v mt nt lnh, hnh dng kch thc mu sc ty bn. Bng cc chng trnh ha (hay dng ngay Paint ca Windows cng c).

Lu li bc nh di dng Bitmap (*.bmp). Tht ra vi VB6 bn c th dng format: bmp, jpg, gif ... Cn VB4 ch dng bmp m thi. Gn vo thuc tnh Picture ca command button. Lu : Bn phi t cho thuc tnh Style l 1-Graphical & Caption l trng (khng t g c). Ti c lm mt th d n gin minh ha

Bc nh gif c v bng cc chng trnh v thng dng.

Button th nht l do ti v, button th hai l ca VB (khng th thay i mu cho Text c). Bn hy so snh. C ngi cho rng bn c th t mt Picture vo Image control gi lm button, nhng theo ring ti cch ny khng hay, v khi t hnh nh trong Image lc ngi dng Click chut s khng cm thy b ln xung nh l cch t hnh nh vo Command Button ca ti mi trnh by. Lm sao hin th hp thoi BROWSE FOR FOLDER ? Trong lc vit ng dng, c lc bn ch cn cho ngi dng chn th mc (nu chn tp tin th c Dialog Open ri). Lc ny bn nn cho hin th hp thoi "Browse for Folder" l tin nht. Sau y l cch thc hin:

Hy khi ng VB. To Project mi G on Code sau y vo mt Module. Private Type BrowseInfo hwndOwner As Long pIDLRoot As Long

pszDisplayName As Long lpszTitle As Long ulFlags As Long lpfnCallback As Long lParam As Long iImage As Long End Type Private Const BIF_RETURNONLYFSDIRS = 1 Private Const MAX_PATH = 260 Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long) Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long Public Function BrowseForFolder(hwndOwner As Long, sPrompt As String) As String Dim iNull As Integer Dim lpIDList As Long Dim lResult As Long Dim sPath As String Dim udtBI As BrowseInfo With udtBI .hwndOwner = hwndOwner .lpszTitle = lstrcat(sPrompt, "") .ulFlags = BIF_RETURNONLYFSDIRS End With lpIDList = SHBrowseForFolder(udtBI) If lpIDList Then sPath = String$(MAX_PATH, 0)

lResult = SHGetPathFromIDList(lpIDList, sPath) Call CoTaskMemFree(lpIDList) iNull = InStr(sPath, vbNullChar) If iNull Then sPath = Left$(sPath, iNull - 1) End If BrowseForFolder = sPath End Function Trn Form to mt Command Button (Name: Command1), g on code sau vo s kin Click. Private Sub Command1_Click() Dim strResFolder As String strResFolder = BrowseForFolder(hWnd, "Select Folder.") If strResFolder <> "" Then MsgBox strResFolder End If End Sub Kt qu chn ca ngi dng c t vo bin strResFolder. Bn hy p dng vo ng dng ca mnh khi c nhu cu.

You might also like