考試-計算機二級VB基礎知識輔導_第1頁
考試-計算機二級VB基礎知識輔導_第2頁
考試-計算機二級VB基礎知識輔導_第3頁
考試-計算機二級VB基礎知識輔導_第4頁
考試-計算機二級VB基礎知識輔導_第5頁
已閱讀5頁,還剩70頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

VB程序設計基礎:窗體屬性

程序設計是指為計算機編制一些軟件和程序。學習的目的是理解計算機的工作方式和運

行的方式。

VB是運行在Windows視窗操作系統上,設計程序的思想在于在窗口中放置對象和針對

對象設計代碼。

(―)啟動VB:單擊“開始”一“程序"一"MicrosoftVisualBasic6.0中文版”

選擇“標準EXE”,單擊“打開”進入窗口。

(二)VB窗口

1、標題欄:在最上面藍色標題是“工程1一.一”,是我們當前正在設計的程序,被稱

作“工程1”。

2、菜單欄:菜單欄在第二行,包含一組菜單,菜單中有各種命令,我們應該理解操作

計算機就是向計算機提供一系列的指令。

(1)“文件”菜單,要求記住“保存”命令,VB要保存兩次,注意保存文件到自己的

文件夾中。(本書中雙引號當中均是指操作命令)

(2)“視圖”菜單,顯示各個窗口,如果一個窗口找不著了,就到這個菜單中找出來。

(3)“運行”菜單,第個“啟動”命令要記住,可以運行我們的程序。

3、工具欄:第三行是工具欄,工具欄是-?些最常用的命令,而且是用圖標表示的,因

而便于形象記憶和操作,要求記住“啟動”按鈕。(在視窗操作系統中,我們不僅要會認識

文字說明,還要特別留意圖標含義。)

4、工作區(qū):工作區(qū)占據窗口的絕大部分,從左向右包括工具箱、窗體、和屬性窗口。

(1)工具箱:在工作區(qū)的左側,包含許多編程用到的基本對象,被稱作“控件”。

(2)窗體:中間的灰色的窗口,是我們設計的程序的基本框架,所有的對象都放在這

個窗口當中。

(3)小窗口:在右側有三個縱向排列的窗口。

①最上面是工程窗口,上邊有三個按鈕,中間的按鈕是顯示對象窗口;

②下面是屬性窗口,屬性是一個對象的名稱、大小、顏色等等;

③最下面是布局窗口,里面顯示程序運行時的位置,拖動里面的小框可以改變程序的顯

示位置。

4、下面修改窗體的屬性,在右側的屬性窗口中找到Caption項,在它右邊的格子里點

一下鼠標左鍵,然后輸入“窗體”兩個字,觀察一下工作區(qū)中的窗體的標題是否已經改變,

Caption是設置一個應用程序的窗口標題,再在屬性窗口中找到BackColor項,單擊右邊格

子里的黑色三角按鈕上點擊一下鼠標左鍵,在彈出的面板上邊的一行文字中選擇“調色板”

標簽,選中淺紫色,觀察一下工作區(qū)中間的窗體的變化。單擊工具欄上的啟動按鈕,運行一

下我們的程序,看一下這個窗口,還不錯吧?

單擊“關閉”按鈕(或者Alt+F4),回到窗體中,在屬性窗口中找到Icon項,在右邊

的格子里點一下鼠標左鍵再點一下三個小點,在彈出的“加戮圖標”對話框中,點擊“向上”

按鈕退一步,再選擇打開Common,再選擇打開Graphics,再選擇打開Icon,再打開Mise,

在里面找一個圖標,單擊打開,再看一下工作區(qū)中的窗體的標題欄左側是否有一個圖標。單

擊“啟動”按鈕,運行一下程序,然后最小化,看一下任務欄上的圖標找到我們的程序,單

擊一下圖標恢復窗口。

關閉程序回到屬性窗口,找到Picture屬性,在右邊的格子里單擊一下鼠標左鍵,打開

“加載圖片”對話框,找一幅較大的背景圖片打開,觀察一下工作區(qū)窗體的變化。單擊“啟

動”按鈕運行一下程序,很漂亮的一個窗口是吧?

關閉程序,同樣再修改Font屬性和ForeColor屬性,屬性都是按照字母排序的,在最

后的WindowState屬性中選擇2—Maxing最大化,運行一下程序看一下效果。

如何保存自己的程序呢?方法是在“文件”菜單中選擇“保存工程”或者點擊工具欄上

的磁盤按鈕,保存文件到自己的文件夾(如果沒有就新建一個)以“MyForm”為文件名(如

果能用中文就輸入漢字“窗體”)。保存兩次,一次是窗體,另一次是工程。

保存好的程序要編譯成可以在Windows下運行的可執(zhí)行程序,方法是選擇“文件”菜單

中的“生成工程l.exe”命令,以“窗體”為文件名保存文件到自己的文件夾,這個程序關

閉VB后也可以運行,退出VB,打開自己的文件夾,找到程序,運行一下看看。

本節(jié)主要講述了VB的基本窗口和窗體屬性,以后會經常用到。

API在VB中應用之技巧集錦

API在VB中應用之技巧集錦

API函數在VB中得到了充分的運用,同時也讓無數VB愛好者沉溺于其中。以下是筆者

幾年來收集整理的幾十個API函數在VB中應用的實例,現在寫出來與大伙分享,希望能對

大伙有所幫助。

1、如何讓窗體總在最前面?

*API函數聲明

DeclareFunctionSetWindowPosLib”user32"(ByVaihwndAsLong,ByVai

hWndlnsertAfterAsLong,ByVaixAsLong,ByVaiyAsLong,ByVaiexAsLong,ByVai

cyAsLong,ByVaiwFlagsAsLong)AsLong

注釋:常量聲明

PrivateConstSWP_NOSIZE=&H1

PrivateConstSWPNOMOVE=&H2

PrivateConstHWND_T0PM0ST=-1

PrivateConstHWD_N0T0PM0ST=-2

注釋:在某個form里寫:

SetWindowPosme.hWnd,WND_T0PM0ST,0,0,0,0,SWP_NOMOVE注釋:或下面

SetWindowPosme.hWnd,WND_T0PM0ST,0,0,0,0,SWP_NOSIZE

2、使用API函數sendmessage,獲得光標所在行和列。

Subgetcaretpos(byvalTextHwnd&,LineNo&,C0IN0&)

注釋:TextHwnd為TextBox的hWnd屬性值,LineNo為所在行數,ColNo為列數

dimi&,j&,k&注釋:獲取起始位置到光標所在位置字節(jié)數

i=SendMessage(TextHwnd,&HBO&,0,0)j=i/216注釋:確定所在行

LineNo=SendMessage(TextHwnd,&HC9&,j,0)+1

注釋:確定所在列

k=SendMessage(TextHwnd,&HBB&,-1,0)

ColNo=j-k+l

Endsub

3、如何以某種顏色填充某區(qū)域?

*API函數聲明

PrivateDeclareSubFloodFillLib〃gdi32"_(ByVaihDCAsLong,ByVaiXAsLong,

ByVaiYAs_Long,ByVaicrColorAsLong

注釋:設為此區(qū)域內任一點

注釋:Color為某種顏色

FloodFillPicturel.hDC,fillx,filly,Color

4、如何關閉計算機?

*API函數聲明

DeclareFunctionExitWindowsLib"User”(ByVaidwReturnCodeAsLong,ByVai

wReservedAsInteger)AsInteger

注釋:執(zhí)行

DimDUMMY

DUMMY=ExitWindows(0,0)

5、如何獲取Windows目錄和System目錄?

注釋:復制以下代碼到一模塊中

PublicDeclareFunctionGetWindowsDirectoryLib〃kernel32〃Alias

,zGetWindowsDirectoryAz,(ByVaiIpBufferAsString,ByVainSizeAsLong)AsLong

PublicDeclareFunctionGetSystemDirectoryLib〃kernel32〃Alias

z,GetSystemDirectoryA^(ByVaiIpBufferAsString,ByVainSizeAsLong)AsLong

注釋:在程序中調用

DimWindowsDirectoryAsString,SystemDirectoryAsString,xAsLong

WindowsDirectory=Space(255)

SystemDirectory=Space(255)

x=GetWindowsDirectory(WindowsDirectory,255)

x=GetSystemDirectory(SystemDirectory,255)

MsgBox"Windows的安裝目錄是:〃+WindowsDirectory+,z,系統目錄是:“+

SystemDirectory

6、如何建立簡單的超級連接?

*API函數聲明

PrivateDeclareFunctionShellExecuteLibz/shell32.dll〃Alias^ShellExecuteA〃

(ByVaihWndAsLong,ByVai1pOperationAsString,ByVaiIpFileAsString,ByVai

IpParametersAsString,ByVaiIpDirectoryAsString,ByVainShowCmdAsLong)As

Long

注釋:打開某個網址

ShellExecute0,"open","http:〃tyvb.126.com",vbNullString,vbNullString,3

注釋:給某個信箱發(fā)電子郵件

ShellExecutehwnd,"open","mailto:sst95@21.cn.com",vbNullString,

vbNullString,0

7、如何得知TextBox中文字所有的行數?

*API函數聲明

DeclareFunctionSendMessageLib〃us6r32〃Alias"SendMessageA”(ByVaihwndAs

Long,ByVaiwMsgAsLong,ByVaiwParamAsLong,1ParamAsAny)AsLong

PublicConstEMGETLINECOUNT=&HBA

注釋:在程序中調用

LineCnt=SendMessage(ctl.hwnd,EM_GETLINECOUNT,0,0)

注釋:LineCnt即為此TextBox的行數。

8、如何設置ListBox的水平卷動軸的寬度?

*API函數聲明

ConstLB_SETHOR1ZONTALEXTENT=&H194

PrivateDeclareFunctionSendMessageLib〃user32〃Alias"SendMessageA”(ByVai

hwndAsLong,ByVaiwMsgAsLong,ByVaiwParamAsLong,_1ParamAsAny)AsLong

注釋:調用

CallSendMessage(List1.hwnd,LB_SETHORIZONTALEXTENT,400,ByVai0&)

注釋:注意400是以象素為單位,你可以根據情況自行設定。

9、如何交換鼠標按鍵?

*API函數聲明

DeclareFunctionSwapMouseButton&Lib〃user32〃(ByVaibSwapaslong)

要交換鼠標按鍵,將bSwap參數設置為Trueo要恢復正常設置,將bSwap設置為False。

然后調用函數就可以交換和恢復鼠標按鍵了。

10、如何讓窗體的標題條閃爍以引起用戶注意?

在窗體中放一個Timer控件Timerl,設置其Inteval=200

*API函數聲明

PrivateDeclareFunctionFlashWindowLib"user32〃(ByVaihwndAsLong,ByVai

blnvertAsLong)AsLong

注釋:在窗體中寫下如下代碼:

PrivateSubTimerlTimer()

FlashWindowMe.hwnd,True

EndSub

11、怎樣找到鼠標指針的XY坐標?

*API函數聲明

TypePOINTAPI

xAsLong

yAsLong

EndType

DeclareFunctionGetCursorPosLib"user32〃(IpPointAsPOINTAPI)AsLong

調用:

GetCursorPosz

printz.x

printz.y

12、怎樣獲得和改變雙擊鼠標的時間間隔?

獲得鼠標雙擊間隔時間:

PublicDeclareFunctionGetDoubleClickTimeLib〃user32〃Alias

,zGetDoub1eC1ickTime()AsLong

獲得鼠標雙擊間隔時間:

DeclareFunctionSetDoubleClickTimeLib”user32〃Alias〃SetDoubleClickTime”

(ByVaiwCountAsLong)AsLong

注釋:注意:這種改變將影響到整個操作系統

以上兩個函數都可精確到毫秒級。

13、在程序中如何打開和關閉光驅門?

*API函數聲明如下:

PrivateDeclareFunctionmciSendStringLib“winmm.dll〃Alias〃mciSendStringA〃

(ByVaiIpstrCommandAsString,ByVaiIpstrReturnStringAsString,ByVai

uReturnLengthAsLong,ByVaihwndCallbackAsLong)AsLong

注釋:調用時的代碼如下

DimRetAsLong

DimRetStrAsString

注釋:打開光驅門

Ret=mciSendString(,/setCDAudiodooropen”,RetStr,0,0)

注釋:關閉光驅門

Ret=mciSendString("setCDAudiodoorclosed”,RetStr,0,0)

14、如何獲得Windows啟動方式?

在Forml中加入一個CommandButton、一個Label并加入如下代碼:

PrivateDeclareFunctionGetSystemMetricsLib〃user32〃(ByVainlndexAsLong)

AsLong

ConstSM_CLEANB00T=67

PrivateSubCommandl_Click()

SelectCaseGetSystemMetrics(SM_CLEANB00T)

Case1

Label1=〃安全模式.〃

Case2

Label1=〃支持網絡的安全模式.〃

CaseElse

Label1="Windows運行在普通模式.〃

EndSelect

EndSub

15、怎樣使Ctrl-Alt-Delete無效?

*API函數聲明

PrivateDeclareFunctionSystemParametersInfoLib〃user32〃Alias

^SystemParametersInfoAz,(ByVaiuActionAsLong,ByVaiuParamAsLong,ByVaiIpvParam

AsAny,ByVaifuWinlniAsLong)AsLong

編寫如下函數:

SubDisableCtrlAltDelete(bDisabledAsBoolean)

DimXAsLong

X=SystemParametersInfo(97,bDisabled,CStr(1),0)

EndSub

使Ctrl-Alt-Delete無效:

CallDisableCtrlAltDelete(True)

恢復Ctrl-Alt-Delete:

CallDisableCtrlAltDelete(False)

16、如何移動沒有標題欄的窗口?

我們一般是用鼠標按住窗口的標題欄,然后移動窗口,當窗口沒有標題欄時,我們可以

用下面的方法來移動窗口:

*API函數聲明:

DeclareFunctionReleaseCaptureLib〃user32〃()AsLongDeclareFunction

SendMessageLib〃user32〃Alias〃SendMessageA〃(ByVaihwndAsLong,ByVaiwMsgAs

Long,ByVaiwParamAsLong,1ParamAsAny)AsLong

PublicConstHTCAPTION=2

PublicConstWMNCLBUTTONDOWN=&HA1

在Form_MouseDown事件中:

PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,

YAsSingle)

ReleaseCaptureSendMessagehwnd,WM_NCLBUTTONDOWN,HTCAPTION,0&

EndSub

17、VB中如何使用延時函數?

*API函數聲明:

DeclareSubSleepLib"kernel32"(ByVaidw.MillisecondsAsLong)

調用:

注釋:延時1秒

CallSleep(1000)

18、調用修改屏幕保護口令的窗口:

PrivateDeclareFunctionPwdChangePasswordLib〃mpr〃Alias

z,PwdChangePasswordA,z(ByVaiIpcRegkeynameAsString,ByVaihwndAsLong,ByVai

uiReservedlAsLong,ByVaiuiReserved2AsLong)AsLong

調用:

CallPwdChangePassword("SCRSAVE〃,Me.hwnd,0,0)

19、使Windows開始屏幕保護:

*API函數聲明

PrivateDeclareFunctionSendMessageLib〃user32〃

Alias"SendMessageA”(ByVaihWndAsLong,ByVaiwMsg

AsLong,ByVaiwParamAsLong,ByVai1ParamAsLong)

AsLong

ConstWM_SYSCOMMAND=&H112&

ConstSC_SCREENSAVE=&HF140&

注釋:調用

DimresultAsLong

result=SendMessage(Forml.hWnd,WM_SYSCOMMAND,SC_SCREENSAVE,0&)

20、如何改變Windows桌面背景?

*API函數聲明

ConstSPI_SETDESKWALLPAPER=20

ConstSPIF_UPDATEINIFILE=&H1

DeclareFunctionSystemParametersInfoLib"user32〃Alias

^SystemParametersInfoA'7(ByVaiuActionAsLong,ByVaiuParamAsLong,ByVaiIpvParam

AsAny,ByVaifuWinlniAsLong)AsLong

注釋:調用

CallSystemParametersInfo(SPI_SETDESKWALLPAPER,0,,zC:windowsClouds.bmp,z,

SPIFUPDATEINIFILE)

21、怎樣確定系統是否安裝了聲卡?

*API函數聲明:

DeclareFunctionwaveOutGetNumDevsLib〃winmm.dll"Alias,,waveOutGetNumDevs,/

()AsLong

代碼如下:

DimiAsInteger

i=waveOutGetNumDevs()

Ifi>0ThenMsgBox"你的系統可以播放聲音。vblnformation,〃聲卡檢測〃

Else

MsgBox〃你的系統不能播放聲音。vblnformation,〃聲卡檢測〃

EndIf

22、如何找到CD-ROM驅動器的盤號?

下面的函數將檢查你計算機所有的驅動器看是否是CD-ROM,如果是就返回驅動器號,

如果沒有就返回空字符

PublicFunctionGetCDROMDriveOAsString

DimITypeAsLong,iAsInteger,tmpDriveasString,foundasBoolean

OnErrorGoToerrL

Fori=0To25

tmpDrive=Chr(65+i)&〃:〃

IType=GetDriveType(tmpDrive)注釋:Win32API函數

If(IType=DR1VE_CDROM)Then注釋:Win32API常數

found=True

ExitFor

EndIf

Next

IfNotfoundThentmpDrive=〃〃

BI_GetCDROMDrive=tmpDrive

exitFunction

errL:msgboxerror$

EndFunction

23、如何將文件放入回收站?

**API函數聲明

PublicTypeSHFILEOPSTRUCT

hwndAsLong

wFuncAsLong

pFromAsString

pToAsString

fFlagsAsInteger

fAnyOperationsAbortedAsLong

hNameMappingsAsLong

IpszProgressTitleAsLong

EndType

PublicDeclareFunctionSHFileOperationLib_"shell32.dll"Alias

"SHFileOperationA"(IpFileOpAsSHFILEOPSTRUCT)AsLong

PublicConstFO_DELETE=&H3

PublicConstFOF_ALLOWUNDO=&H40

注釋:調用

DimSHopAsSHFILEOPSTRUCT,strFileasstring

WithSHop

.wFunc=FODELETE

.pFrom=strFile+Chr(0)

.fFlags=F0F_ALL0WUND0

EndWith

24、VB中如何使用未安裝的字體?

DeclareFunctionAddEontResourceLib〃gdi32"Alias"AddFontResourceA”(ByVai

IpFileNameAsString)AsLong

DeclareFunctionRemoveFontResourceLib〃gdi32〃Aliasz,RemoveFontResourceA,z

(ByVaiIpFileNameAsString)AsLong

增加字體:

DimIResultAsLong

IResult=AddFontResource(,zc:myAppmyFont.ttfz,)

刪除字體:

DimIResultAsLong

IResult=RemoveFontResourceCc:myAppmyFont.ttf,z)

MCI播放器在VB中實現

'用MCI命令來實現多媒體的播放功能

'下面的內容幾乎有播放器軟件的各種功能,你只是引用這些函數就能做出一個播放器

PublicDeclareFunctionmciSendStringLib"winmm.dll〃Alias“mciSendStringA”

(ByVaiIpstrCommandAsString,ByVaiIpstrReturnStringAsString,ByVai

uReturnLengthAsLong,ByVaihwndCallbackAsLong)AsLong

PublicDeclareFunctionmciGetDevicelDLib〃winmm.dll〃Alias"mciGetDevicelDA”

(ByVaiIpstrNameAsString)AsLong

PublicDeclareFunctionwaveOutGetVolumeLib〃winmm.dll〃(ByVaiuDevicelDAs

Long,IpdwVolumeAsLong)AsLong

PublicDeclareFunctionGetWindowLongLib〃user32〃Alias“GetWindowLongA”

(ByVaihwndAsLong,ByVainlndexAsLong)AsLong

PublicDeclareFunctionCallWindowProcLib〃user32'Aliasz,Cal1WindowProcAz/

(ByVaiIpPrevWndFuncAsLong,ByVaihwndAsLong,ByVaiMsgAsLong,ByVaiwParam

AsLong,ByVai1ParamAsLong)AsLong

PublicDeclareFunctionSetWindowLongLib〃user32〃Alias〃SetWindowLongA〃

(ByVaihwndAsLong,ByVainlndexAsLong,ByVaidwNewLongAsLong)AsLong

PublicDeclareFunctionGetShortPathNameLib,,kernel32,,Alias

/zGetShortPathNameA/z(ByVaiIpszLongPathAsString,ByVaiIpszShortPathAsString,

ByVaicchBufferAsLong)AsLong

EnumPlayTypeName

File=1

CDAudio=2

VCD=3

RealPlay=4

EndEnum

DimPlayTypeAsPlayTypeName

EnumAudioSource

AudioStereo=0'"stereo”

AudioLeft=1'〃:left”

AudioRight=2'"right”

EndEnum

DimhWndMusicAsLong

DimprevWndprocAsLong

'打開MCI設備,urlStr為網址,傳值代表成功與否

PublicFunctionOpenURL(urlStrAsString,OptionalhwndAsLong)AsBoolean

OpenMusic=False

DimMciCommandAsString

DimDriverlDAsString

CloseMusic

'MCI命令

DriverlD=GetDriverlD(urlStr)

IfDriverlD="RealPlayer"Then

PlayType=RealPlay

ExitFunction

EndIf

MciCommand="open〃&urlStr&〃type〃&DriverlD&〃aliasNOWMUSIC”

IfDriverlD=〃AVIVideo〃OrDriverlD=〃MPEGVideo〃OrDriverlD=〃MPEGVideo2〃

Then

Ifhwnd<>0Then

MciCommand=MciCommand+〃parent〃&hwnd&〃stylechild”

hWndMusic=GetWindowHandle

prevWndproc=GetWindowLong(hWndMusic,-4)

SetWindowLonghWndMusic,-4,AddressOfWndProc

Else

MciCommand=MciCommand+〃styleoverlapped〃

EndIf

EndIf

Reflnt=meiSendString(MeiCommand,vbNull,0,0)

mciSendString"setNOWMUSICtimeformatmilliseconds”,vbNullString,0,0

IfReflnt=0ThenOpenMusic=True

EndFunction

'打開MCI設備,FILENAME為文件名,傳值代表成功與否

PublicFunctionOpenMusic(FileNameAsString,OptionalhwndAsLong)AsBoolean

OpenMusic=False

DimShortPathNameAsString*255

DimRefShortNameAsString

DimReflntAsLong

DimMciCommandAsString

DimDriverlDAsString

CloseMusic

'獲取短文件名

GetShortPathNameFileName,ShortPathName,255

RefShortName=Left(ShortPathName,InStr(1,ShortPathName,Chr(0))-1)

'MCI命令

DriverlD=GetDriverlD(RefShortName)

IfDriverlD="RealPlayer"Then

PlayType=RealPlay

ExitFunction

EndIf

MeiCommand="open〃&RefShortName&〃type〃&DriverlD&〃aliasNOWMUSIC”

IfDriverlD=〃AVIVideo〃OrDriverlD="MPEGVideo"OrDriverlD="MPEGVideo2”

Then

Ifhwnd<>0Then

MeiCommand=MeiCommand+〃parent〃&hwnd&〃stylechild”

hWndMusic=GetWindowHandle

prevWndproc=GetWindowLong(hWndMusic,-4)

SetWindowLonghWndMusic,-4,AddressOfWndProc

Else

MeiCommand=MeiCommand+〃styleoverlapped〃

EndIf

EndIf

Reflnt=mciSendString(MciCommand,vbNull,0,0)

mciSendString"setNOWMUSICtimeformatmilliseconds”,vbNullString,0,0

IfReflnt=0ThenOpenMusic=True

EndFunction

FunctionWndProc(ByVaihwndAsLong,ByVaiMsgAsLong,ByVaiwParamAsLong,

ByVai1ParamAsLong)AsLong

IfMsg=&H202Then

MsgBox〃0K〃

EndIf

WndProc二CalIWindowProc(prevWndproc,hwnd,Msg,wParam,1Param)

EndFunction

'根據文件名,確定設備

PublicFunctionGetDriverID(ffAsString)AsString

SelectCaseUCase(Right(ff,3))

Case〃IDI〃

GetDriverlD="Sequencer”

Case〃WAV〃

GetDriverlD="Waveaudio”

Case〃ASF〃,〃ASX〃,〃IVF〃,〃LSF〃,〃LSX〃,〃P2V〃,〃WAX〃,〃WVX〃,〃WMA〃,〃WMX〃,

GetDriverlD二〃MPEGVideo2〃

Casez,.RM〃,〃RAM〃,〃.RA〃

GetDriverlD="RealPlayer”

CaseElse

GetDriverlD=〃MPEGVideo〃

EndSelect

EndFunction

'播放文件

PublicFunctionPlayMusicOAsBoolean

DimRefIntAsLong

PlayMusic=False

Reflnt=mciSendString(,,playNOWMUSIC”,vbNul1,0,0)

IfReflnt=0ThenPlayMusic=True

EndFunction

'獲取媒體的長度

PublicFunctionGetMusicLengthOAsLong

DimRefStrAsString*80

mciSendString"statusNOWMUSIClength”,RefStr,80,0

GetMusicLength=Vai(RefStr)

EndFunction

'獲取當前播放進度

PublicFunctionGetMusicPos()AsLong

DimRefStrAsString*80

mciSendString"statusNOWMUSICposition”,RefStr,80,0

GetMusicPos=Vai(RefStr)

EndFunction

'獲取媒體的當前進度

PublicFunctionSetMusicPos(PositionAsLong)AsBoolean

DimReflntAsLong

SetMusicPos=False

Reflnt=mciSendString(,zseekNOWMUSICto〃&Position,vbNull,0,0)

IfReflnt=0ThenSetMusicPos=True

EndFunction

'暫停播放

PublicFunctionPauseMusic()AsBoolean

DimReflntAsLong

PauseMusic=False

Reflnt=mciSendString(,zpauseNOWMUSIC”,vbNull,0,0)

IfReflnt=0ThenPauseMusic=True

EndFunction

'關閉媒體

PublicFunctionCloseMusic()AsBoolean

DimReflntAsLong

CloseMusic=False

Reflnt=mciSendString("closeNOWMUSIC”,vbNull,0,0)

IfReflnt=0ThenCloseMusic=True

EndFunction

’設置聲道

PublicFunctionSetAudioSource(sAudioSourceAsAudioSource)AsBoolean

DimReflntAsLong

DimstrSourceAsString

SelectCasesAudioSource

Case1:strSource=〃left〃

Case2:strSource="right”

Case0:strSource="stereo”

EndSelect

SetAudioSource=False

Reflnt=mciSendString("setaudioNOWMUSICsourceto"&strSource,vbNul1,0,

0)

IfReflnt=0ThenSetAudioSource=True

EndFunction

'全屏播放

PublicFunctionPlayFullScreenOAsBoolean

DimReflntAsLong

PlayFullScreen=False

Reflnt=mciSendString(,zplayNOWMUSICfullscreen”,vbNull,0,0)

IfReflnt=0ThenPlayFullScreen=True

EndFunction

’設置聲音大小

PublicFunctionSetVolume(VolumeAsLong)AsBoolean

DimReflntAsLong

SetVolume=False

Reflnt=mciSendString(,zsetaudioNOWMUSICvolumeto"&Volume,vbNull,0,0)

IfReflnt=0ThenSetVolume=True

EndFunction

’設置播放速度

PublicFunctionSetSpeed(SpeedAsLong)AsBoolean

DimReflntAsLong

SetSpeed=False

Reflnt=mciSendStringCzsetNOWMUSICspeed〃&Speed,vbNull,0,0)

IfReflnt=0ThenSetSpeed=True

EndFunction

'靜音True為靜音,FALSE為取消靜音

PublicFunctionSetAudioOnOff(AudioOffAsBoolean)AsBoolean

DimReflntAsLong

DimOnOffAsString

SetAudioOff=False

IfAudioOffThenOnOff="off"ElseOnOff=〃on〃

Reflnt=mciSendString("setaudioNOWMUSIC〃&OnOff,vbNull,0,0)

IfReflnt=0ThenSetAudioOff=True

EndFunction

是否有畫面True為有,FALSE為取消

PublicFunctionSetWindowShow(WindowOffAsBoolean)AsBoolean

DimReflntAsLong

DimOnOffAsString

SetWindowShow=False

IfWindowOffThenOnOff="show"ElseOnOff="hide"

Reflnt=mciSendString(^windowNOWMUSICstate〃&OnOff,vbNull,0,0)

IfReflnt=0ThenSetWindowShow=True

EndFunction

'獲得當前媒體的狀態(tài)是不是在播放

PublicFunctionIsPlayingOAsBoolean

DimsiAsString*255

mciSendString"statusNOWMUSICmode”,si,Len(sl),0

IfLeft(si,7)="playing"OrLeft(si,2)=〃播放〃Then

IsPlaying=True

Else

IsPlaying=False

EndIf

EndFunction

'獲得播放窗口的handle

PublicFunctionGetWindowHandle0AsLong

DimRefStrAsString*160

mciSendString"statusNOWMUSICwindowhandle”,RefStr,80,0

GetWindowHandle=Vai(RefStr)

EndFunction

獲取DevicelD

PublicFunctionGetDevicelDOAsLong

GetDevicelD二mciGetDeviceID(z,NOWUSIC,z)

EndFunction

TextBox使用技巧

TextBox使用技巧

在使用VisualBasic開發(fā)應用程序時,TextBox控件是最常用的(特別

對于數據庫程序),以下是筆者在開發(fā)應用程序時的一些技巧,希望對愛好

VB的朋友有幫助。

1、限制TextBox只能輸入數字。

我們只需要判斷KeyAscii是否在48-57之間就可以達到目的,但我們還會

要用到退格鍵的,所以必須加上KeyAscii<>8。

PrivateSubTextl_KeyPress(KeyAsciiAsInteger)

IfKeyAscii<>8AndKeyAscii<48OrKeyAscii>57Then

Beep

KeyAscii=0

EndIf

EndSub

2、自動將輸入的英文轉為小寫/大寫。

如果在KeyPress事件里使用Ucase$和Lcase$,那么當你輸入abc時,Text

Box里的結果會是CBA(具體原因這里不多說),我們只好判斷它的KeyAscii,

剛好大寫與小寫之間是相差32,所以……看下面的程序。

'大寫轉小寫

PrivateSubTextl_KeyPress(KeyAsciiAsInteger)

IfKeyAscii>=65AndKeyAscii<=90Then

KeyAscii=KeyAscii+32

EndIf

EndSub

'小寫轉大寫

PrivateSubText2KeyPress(KeyAsciiAsInteger)

IfKeyAscii>=97AndKeyAscii<=122Then

KeyAscii=KeyAscii-32

EndIf

EndSub

3、使兩個TextBox同步的方法。

這種方法怎么解釋呢?第二個等于第一個就行了:-)0

PrivateSubTextlKeyPress(KeyAsciiAsInteger)

Text2=Textl

EndSub

4、按下Enter鍵之后,光標自動移到下一個控件。

當KeyAscii為13(回車)時,Send一個Tab鍵給它就行了。

PrivateSubTextlKeyPress(KeyAsciiAsInteger)

IfKeyAscii=13Then

SendKeys”{tab}”

KeyAscii=0

EndIf

EndSub

5、當光標移到TextBox時自動選定其中的整串文字。

當對象得到焦點時,從最前面開始選取(SelStartR),選取的

長度為文本長度(Len(Textl))。

PrivateSubTextlGotFocus()

Textl.SelStart=0

Textl.SelLength=Len(Textl)

EndSub

6、當光標移到TextBox時改變其文字顏色。

當TextBox得到焦點時(GotFocus)改變文本顏色,失去焦點時(

LostFocus)將還原文本顏色,ForeColor是設置文本的前景色。

'當光標移到TextBox時文字設置為紅色

PrivateSubTextl_GotFocus0

Textl.ForeColor=vbRed

EndSub

'當光標移出TextBox時文字設置為黑色

PrivateSubTextl_LostFocus()

Textl.ForeColor=vbBlack

EndSub

以上代碼只要將Textl.ForeColor改為Textl.BackColor即可改變TextBox

的背景色。

VB2005實現新一代控制臺應用程序開發(fā)

計算機用戶經常把控制臺應用程序作為一種“遺物”來看待,但是它們仍然還作為系統管理

員的非常喜歡的部分,而且還是高手用戶的“工具箱”之一。另外,當你需要大量重復的

腳本操作,當然還有可能的更復雜的操作時,都會用到這種控制臺應用程序。

在VisualBasic的早期版本中基本沒有為創(chuàng)建控制臺應用程序提供多大支持。而且,

盡管VB6及其早期版本能夠創(chuàng)建控制臺應用程序;但是,這不是一種簡單的或直接的過程。

在VB6中創(chuàng)建一個控制臺應用程序必須進行Win32API調用;即使如此,你也不能控制光

標位置或文本的顏色,而且在很大程度上僅能被限制進行從左到右和從上到下的編碼。

如今,VB.net引入了新的控制臺應用程序特征。它不僅在“NewProject..."對話框

中提供一種控制臺應用程序工程,而且最重要的是,它還提供了一個控制臺(Console)對

象。因此,你不必再“困擾”于Win32API了。然而,你還是被限于“從左到右和從上到

下”的編碼。但是,VB.net仍然缺乏用于改變光標或文本的位置或顏色的方法或屬性,還

有其它許多更高級的特征。

一、在VB2005中的新型控制臺應用程序特征

基于早期VB.NET版本中所提供的Console對象,如今的VB2005又為控制臺應用程序

增加了許多優(yōu)秀的特征。下面列出的僅是VB2005中更為激動人心的功能中的一部分:

?清除控制臺窗口

?得到并設定光標位置和大小

?得到并設定窗U高度和寬度

?得到并設定前景和背景顏色

?選擇并在控制臺窗口內移動部分文本

本文中的其它部分將詳細地分析一個控制臺應用程序的創(chuàng)建過程,以便展示上面這些特

征的使用。

二、實例應用程序一DirCopy

我經常從控制臺窗口中實現把文件從一個目錄復制到另一個目錄。當我復制?個含有大

量文件的目錄時,我經常希望得到一些提示一復制進程完成的怎么樣了?復制快結束了還是

再等待一會?為了實現這一問題,我構建了一個控制臺應用程序,它能夠在控制臺窗口內顯

示一個進度條來以圖形化顯示復制進度。

三、定義功能

為了簡化本文中的演示目的,DirCopy將使用兩個命令行參數:?個源目錄和一個目的

目錄。然后,它把所有文件從源目錄復制到目的目錄。注意,這個簡單的程序無法復制源目

錄下的子目錄。

首先,我編寫一個DisplayUsage子程序。如果使用太多或太少的命令行參數調用

DirCopy,那么它將調用DisplayUsage,然后結束。

下列是DisplayUsage子

程序的代碼:

PrivateSubDisplayUsage0DimoriginalForegroundColorAsConsoleColor=

Console.ForegroundColorConsole.Clear()Console.ForegroundColor=

ConsoleColor.GreenConsole.WriteLine(z,DirCopy1.0")

Console.WriteLine("WrittenbyJoshFitzgerald")Console.WriteLine(New

StringConsole.WindowWidth))Console.WriteLine(/?DirCopywillcopyallof

thefilesfromthesourcefoldertothe")Console.WriteLine(^destinationfolder.

Whilethefilesarecopying,aprogressbar")Console.WriteLine("willdisplaythe

percentcomplete.,z)Console.WriteLine()Console.WriteLine(z,Ifadirectory

namecontainsspaces,encloseitindoublequotes.〃)Console.WriteLine()

Console.Write(^Example:〃)Console.ForegroundColor=ConsoleColor.Magenta

Console.WriteLine(z/DirCopyC:\MyFolderC:\MyNewFolder")

Console.ForegroundColor=ConsoleColor.GreenConsole.WriteLine()

Console.Write(z,Example:〃)Console.ForegroundColor=ConsoleColor.Magenta

Console.WriteLine(,zDirCopy〃"C:\MyFolder""""C:\MyNewFolder""")

Console.ForegroundCo1or=originalForegroundColorEndSub

該子程序做的第?事情是創(chuàng)建?個變量originalForegroundColor,然后它存儲

Console.ForegroundColor的值。在子程序的最后,代碼把Console.ForegroundColor屬性

設置回originalForegroundColor。當你分析這部分代碼時,你會注意到,在每個修改前景

或背景顏色的子程序中都是這樣操作的。在實際運行DirCopy之前,我想確保DirCopy總是

讓控制臺顯示相同的顏色。

DisplayUsage做的卜一件事情是,使用Console.Clear方法清除控制臺屏幕。這是在

VB2005中的新方法之一;這樣以來,程序員可以很容易地擁有一個干凈的控制臺窗口。

我想讓幫助文本顯眼一點,為此,我把ForegroundColor屬性設置為綠色。然后,我使

用Writeline和Write方法把幾行文本輸出到屏幕上。在描述的最后,我包括了一些怎樣運

行DirCopy的示例。我想使得這些示例突出一些;因此,我把ForegroundColor設置為品紅

色。

VB6.0中對ADO對象的一些常見操作與應用

1:問題的提出

在VisualBasic中,常用的數據訪問接口有下列三種:數據庫訪問對象(DAO,Data

AccessObject),遠程數據庫對象(RDO,RemoteDataObject)和ActiveX數據對象(ADO,

ActiveXDataObject)。數據庫訪問技術一直在不斷進步,而這三種接口的每一種都分別

代表了該技術的不同發(fā)展階段。最新的是A

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論