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

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

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

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

    在運行時顯示或隱藏窗體的標題欄

    發布: 2007-5-25 09:21 | 作者: wxj_lake | 來源: 互聯網 | 查看: 39次 | 進入軟件測試論壇討論

    領測軟件測試網 這則代碼告訴你如何在運行時顯示或隱藏窗體的標題欄。要使一個窗口的標題欄消失,你必須去掉control box、最大化按鈕和最小化按鈕,并且將caption設為空。不幸的是,VB中窗體的ControlBox、MinButton和MaxButton屬性在運行期是只讀的,因此,你只能在設計時做這些事。其實,只要能熟練操作關于窗口式樣的API,你同樣能在運行時辦到這一點。
      新建一個項目,把以下代碼寫入窗體:

    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
    (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
    (ByVal hwnd As Long, ByVal nIndex As Long) As Long

    Private Const GWL_STYLE = (-16)
    Private Const WS_CAPTION = &HC00000   ' WS_BORDER 或 WS_DLGFRAME
    Private Const WS_MAXIMIZEBOX = &H10000
    Private Const WS_MINIMIZEBOX = &H20000
    Private Const WS_SYSMENU = &H80000

    Private Declare Function SetWindowPos Lib "user32" _
    (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, _
    ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

    Private Enum ESetWindowPosStyles
      SWP_SHOWWINDOW = &H40
      SWP_HIDEWINDOW = &H80
      SWP_FRAMECHANGED = &H20 ' The frame changed: send WM_NCCALCSIZE
      SWP_NOACTIVATE = &H10
      SWP_NOCOPYBITS = &H100
      SWP_NOMOVE = &H2
      SWP_NOOWNERZORDER = &H200 ' Don't do owner Z ordering
      SWP_NOREDRAW = &H8
      SWP_NOREPOSITION = SWP_NOOWNERZORDER
      SWP_NOSIZE = &H1
      SWP_NOZORDER = &H4
      SWP_DRAWFRAME = SWP_FRAMECHANGED
      HWND_NOTOPMOST = -2
    End Enum

    Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
    Private Type RECT
      Left As Long
      Top As Long
      Right As Long
      Bottom As Long
    End Type

    Private Function ShowTitleBar(ByVal bState As Boolean)
    Dim lStyle As Long
    Dim tR As RECT

      ' 獲取窗口的位置:
      GetWindowRect Me.hwnd, tR

      ' 調整標題欄是否可見:
      lStyle = GetWindowLong(Me.hwnd, GWL_STYLE)
      If (bState) Then
      Me.Caption = Me.Tag
      If Me.ControlBox Then
        lStyle = lStyle Or WS_SYSMENU
      End If
      If Me.MaxButton Then
        lStyle = lStyle Or WS_MAXIMIZEBOX
      End If
      If Me.MinButton Then
        lStyle = lStyle Or WS_MINIMIZEBOX
      End If
      If Me.Caption <> "" Then
        lStyle = lStyle Or WS_CAPTION
      End If
      Else
      Me.Tag = Me.Caption
      Me.Caption = ""
      lStyle = lStyle And Not WS_SYSMENU
      lStyle = lStyle And Not WS_MAXIMIZEBOX
      lStyle = lStyle And Not WS_MINIMIZEBOX
      lStyle = lStyle And Not WS_CAPTION
    End If
    SetWindowLong Me.hwnd, GWL_STYLE, lStyle

    ' 重新設定窗口:
    SetWindowPos Me.hwnd, 0, tR.Left, tR.Top, tR.Right - tR.Left, tR.Bottom - tR.Top, SWP_NOREPOSITION Or SWP_NOZORDER Or SWP_FRAMECHANGED
    Me.Refresh

    ' 你可能需要在Form_Resize中加一點代碼,因為客戶區的大小已經改變:
    'Form_Resize

    End Function


      為了試驗一下代碼,在窗體上放一個CheckBox,將它的Value屬性設為1 (Checked)。然后寫入以下代碼:

    Private Sub Check1_Click()
      If (Check1.Value = Checked) Then
      ShowTitleBar True
      Else
      ShowTitleBar False
    End If
    End Sub

      運行,當你點擊這個CheckBox時,窗體的標題欄將會在隱藏或顯示之間切換。

    延伸閱讀

    文章來源于領測軟件測試網 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>