• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    VB開發應用程序答疑

    發布: 2007-7-14 20:28 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 14次 | 進入軟件測試論壇討論

    領測軟件測試網 VB以其易于學習、易于開發而深受廣大開發人員的喜愛,但是在實際開發時,我們也會遇到很多問題,筆者總結了一些開發中常見的問題,給出了通用的解決方法,希望對VB開發人員有所幫助。


    問:在VB應用程序中,如何實現窗體的簡易移動?
    答:如果你的窗體不需要標題欄,又希望能移動該窗體,像WinAmp一樣簡易移動,我們可以利用以下代碼實現:

    Declare Function ReleaseCapture Lib "user32" () As Long
    Declare Function SendMessage Lib "user32" Alias "SendMessageA"(_ByVal hwnd As Long, ByVal wMsg As Long,_ByVal wParam As Long, lParam As Any) As Long
    Public Const HTCAPTION = 2
    Public Const WM_NCLBUTTONDOWN = &&&&HA1  


    下面是將功能加入窗體的MouseDown事件中的代碼,你也可將其加入其它控件的事件中:

    Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    ReleaseCapture
    SendMessage hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&&&&  


    利用以上代碼,我們就可實現窗體的簡易移動。

    問:如何在桌面上畫圖標?
    答:下面一段程序利用了API函數在屏幕上實現畫圖標功能(注:p是圖標的句柄,可以由ExtractIcon取得)。

    deskhwnd = GetNextWindow(hwnd, GW_HWNDLAST)
    '取最下面一個窗口
    deskdc = GetWindowDC(deskhwnd)
    '取窗口的情景設備
    For i=0 To Screen.Width/32/15
    '將屏幕坐標單位換算成“Pixel”,并計算可畫的圖標數
    For j=0 To Screen.Height/32/15
    DrawIcon deskdc, 32i, 32j, p
    '在桌面上畫圖
    Next j
    Next i


    用函數GetNextWindow取得其句柄,用函數GetWindowDC取出它的虛擬設備。需要注意的是,一旦窗口被覆蓋,圖標就會消失。

    問:在VB應用程序中,如何取消窗體右上角的關閉功能?
    答:如果你不想別人使用程序時直接用右上角的關閉功能來關閉程序,可用以下代碼來實現該功能。

    在Form_Unload事件中加入以下代碼:

    Private Sub Form_Unload(Cancel As Integer)
    Cancel=True
    End Sub


    如果你想在關閉程序時提示是否關閉,可在Form_Unload事件中加入一個判斷語句:
    Private Sub Form_Unload(Cancel As Integer)
    Cancel=True
    Case Select msgbox "您真的想關閉嗎?" ,VbOkCancel
    Case VbOk
    Cancel=False
    Case Else
    Cancel=True
    End Select
    End Sub  


    問:如何讓VB應用程序中的連接具有超級鏈接效果?
    答:我們以一個網址鏈接為例,講解實現的方法。

    首先我們新建一表單,在表單中加入一標簽,Caption屬性為http://ccidnet.com/,MouseIcon值為操作系統下Curors目錄里的Hand.ico文件,MousePointer值為99。

    在標簽的MouseMove事件中加入如下代碼:

    Label1.ForeColor=&&&&HFF  


    在表單的MouseMove事件中加入如下代碼:

    Label1.ForeColor=&&&&HFF0000  


    在標簽的Click事件中加入如下代碼:

    Dim a As String
    a=Shell("Explorer.exe http://ccidnet.com/",3)  


    問:如何讀取外部圖標?
    答:下面的一段程序就顯示了如何讀取程序中的圖標,其中Picture1是一個圖像框,dlgOpen是一個標準對話框,Command1是一個按鈕;ExtractIcon函數有三個參數,第一個參數指定調用的應用程序,一般都用App.hInstance;第二個參數指定圖標文件,可以是DLL、EXE和ICO;第三個參數的不同就決定了其返回值的不同,如果代入-1,就返回文件中包含的圖標數,代入0則返回第一個圖標的句柄,其余依此類推。

    Private Sub Command1_Click()
    Static total As Long,p(50) As Long,i As Integer
    dlgOpen.Filter = "圖標|.Exe;
    .Ico;.Dll"
    dlgOpen.ShowOpen
    If Dir(dlgOpen.filename)<>"" Then
    If ExtractIcon(App.hInstance, dlgOpen.filename, -1) = 0 Then '如果沒有圖標
    MsgBox "No Icon!"
    Else
    total = ExtractIcon(App.hInstance, dlgOpen.filename, -1)
    '取得總圖標數
    For i = 0 To total - 1
    p(i) = ExtractIcon(App.hInstance, dlgOpen.filename, i) '讀取每個圖標
    Next i
    For i = 0 To total - 1 '依次顯示每個圖標
    DrawIcon Picture1.hdc, 34  i, 0, p(i)
    Next i
    End If
    End If
    End Sub

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>