国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

VB實用編程兩例

2019-11-18 17:28:49
字體:
來源:轉載
供稿:網友
該程序通過VB的多媒體控件MCI32.OCX可以打開MPEG壓縮文件(如VCD2.0版的.DAT文件)來實現一個VCD播放器的設計

  首先必須確保在你的Windows系統中SYSTEM.INI文件關于[MCI]中需有MPEGVideo項(一般Windows95和Windows98中均有此項)。

  次在VB中建立一個新窗口,加入多媒體部件MicrosoftMultimediaControl5.0(位于C:/Windows/System/MCI32.OCX),以及對話框部件MicrosoftCommonDialogControl5.0(位于C:/Windows/System/COMMONDLG32.OCX),將MCI控件拖放至窗體Form上,調整其大小,并將窗體的大小也調整為與其同樣大小;將其九個按鈕(從左至右為:

  DimjAsInteger

  j=MMControl1.Position 100'數值100為前進量,可適當調整

  Ifj>MMControl1.LengthThenMMControl1.From=MMControl1.Length

  ElseMMControl1.From=j

  EndIf

  MMControl1.Command="Play"

  EndSub

  MCI控件還有很多屬性,如畫面播放位置hWndDisplay屬性等等,大家可參閱相關資料自行摸索。

  調整好窗體的標題、圖標、顏色等,然后編譯成.EXE文件,你就可以在Windows下擁有自己的VCD播放器了。


  有時在一個窗口中出現較多的控制件時,如果能向導式地建議用戶下一步該做什么,不失為上策。在VisualBasic的程序設計中,我們可以使用語句:object.SetFaocus使我們希望的控件得到輸入焦點,舉個例子:在Form1中我們加入一個按鈕Command1和一個文本輸入Text1,雙擊按鈕控件,然后鍵入如下代碼:text1.SetFocus

  再按F5運行程序,您就會看到一單擊按鈕,文本框會立即取得輸入焦點。另外,我們還可以使用語句:Sendkeys"{TAB}"使下一個控件獲得焦點,但我們需要在設計時確定各控件的Index值。(在Properties窗口中)讓控件自己感知自己的工作已完成,而主動將焦點讓出,會使用戶覺得應用程序很聰明,也減少了用戶出錯的機會。

  可是當焦點切換的兩個控件相隔有一定距離時,上述的方法有時也不足以引起用戶的注意,那么一種好的解決方法是將鼠標箭頭也移到控件上。可惜,VB并不支持鼠標移動,那我們就求助API函數,API函數SetCursorPos可讓我們如愿。

  下面是子程序MoveCursorOn,它可讓鼠標移動到指定控件上方。下列代碼請放在declarations段中:

  TypePoinTAPI

  xAsInteger

  yAsInteger

  EndType

  DeclareSubSetCursorPosLib"User"(ByvalxAsInteger,ByvalyAsInteger)

  DeclareSubClientToScreenLib"User"(ByvalhwndAsInteger,ipPointaspointAPI)DeclareFunctionGetParentLib"User"(Byval hwnd As Integer)AsInteger

  然后建立一個新的子程序(ALT+N→N→鍵入子程序名MoveCursorOn),下面是子程序的代碼:

  SubMoveCursorOn(sourceAsControl)

    DimPtAsPoinTAPI

    DimhparentAsInteger

    p.x=(Source.Left+Source.Width/2)/Screen.Twipsperpixel)

    p.y=(Source.Top+Source.Height/2)/Screen.Twipsperpixel)

    hparent=GetParent(source.hwnd)

    ClientToScreenhparentpt

    SetCursorPos pt.x pt.y

    EndSub

  使用該子程序很容易,例如我們想把鼠標移動到按鈕Command1上,就可使用語句MoveCursorOnCommand1您會看到鼠標箭頭已經指著按鈕Command1。

  需要說明的是,千萬不要濫用該子程序。讓鼠標自己滿屏亂飛,我們的用戶會感到失去對應用程序的控制,這是違反我們的初衷的。在有數個輸入框的窗口中(這在數據庫應用程序中是很典型的),當用戶完成第一個輸入框的輸入后,總愛習慣性的加一個回車,希望輸入焦點落到下一個輸入框中(DOS中大多數應用程序是如此),可往往事與愿違,這一回車卻觸發了擁有Default特性的按鈕,結果不是關閉了當前窗口就是又蹦出另一窗口。用戶睜大眼睛看著屏幕,"咦?!我到底做了什么?”這是Windows新用戶經常遇到的事情。解決它其實很容易,只需在輸入框的KeyPress事件中加入如下代碼:IFKeyASCII=13Then KeyASCII=0 Sendkeys"{TAB}"ENDIF這樣,當用戶在這個輸入框中鍵入Enter時,就象鍵入TAB鍵時,焦點被移到下一控件上。但需注意,這種方法不適用于多行的TextBox,即TextBox的MultiLine特性設為True時,因為這時的回車鍵是起換行的作用。

->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 略阳县| 文化| 黄石市| 无锡市| 孟津县| 桦南县| 布尔津县| 上饶市| 龙南县| 宁都县| 伊金霍洛旗| 绍兴县| 金华市| 哈密市| 息烽县| 丹东市| 柞水县| 诸城市| 加查县| 山西省| 乐安县| 长武县| 平潭县| 玉门市| 英德市| 河北区| 兰坪| 普定县| 廉江市| 渝中区| 鄂温| 边坝县| 滨州市| 涿州市| 兴安县| 淳安县| 应城市| 博乐市| 安泽县| 满城县| 威远县|