win32窗口樣式GWL_EXSTYLE


Private Const GWL_STYLE = (-16)             '窗口樣式

'窗口風格
Private Const WS_CAPTION = &HC00000         '帶標題欄的窗口
Private Const WS_MAXIMIZEBOX = &H10000      '帶最大化按鈕的窗口
Private Const WS_MINIMIZEBOX = &H20000      '帶最小化按鈕的窗口
Private Const WS_SYSMENU = &H80000          '帶系統菜單的窗口
Private Const WS_CLIPSIBLINGS = &H4000000   '不重繪層疊子窗口
Private Const WS_CLIPCHILDREN = &H2000000   '繪圖時排子窗口區域
Private Const WS_OVERLAPPED = &H0&          '具有標題欄和邊框的層疊窗口
Private Const WS_THICKFRAME = &H40000       '具有可調邊框
'WS_OVERLAPPEDWINDOW具有標題欄、窗口菜單、可調邊框和最大化、最小化按鈕的窗口
Private Const WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED Or WS_CAPTION Or WS_SYSMENU Or WS_THICKFRAME Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX)
Private Const WS_GROUP = &H20000            '指定一組控制的第一個控制
Private Const WS_POPUP = &H80000000         '彈出式窗口
Private Const WS_BORDER = &H800000          '單邊框窗口
Private Const WS_POPUPWINDOW = (WS_POPUP Or WS_BORDER Or WS_SYSMENU) '具有單邊框、標題欄菜單的彈出式窗口
Private Const WS_MINIMIZE = &H20000000      '窗口最小化
Private Const WS_VISIBLE = &H10000000       '窗口可見
Private Const WS_DISABLED = &H8000000       '窗口被禁用
Private Const WS_MAXIMIZE = &H1000000       '窗口最大化
Private Const WS_DLGFRAME = &H400000        '對話框邊框風格
Private Const WS_VSCROLL = &H200000         '具有垂直滾動條
Private Const WS_HSCROLL = &H100000         '具有水平滾動條
Private Const WS_TABSTOP = &H10000          '具有TAB鍵控制
Private Const WS_CHILD = &H40000000
Private Const WS_CHILDWINDOW = (WS_CHILD)   '具有子窗口

'擴展風格
Private Const WS_EX_WINDOWEDGE = &H100&         '窗口具有凸起的3D邊框
Private Const WS_EX_CLIENTEDGE = &H200&         '窗口具有陰影邊界
Private Const WS_EX_TOOLWINDOW = &H80&          '小標題工具窗口
Private Const WS_EX_TOPMOST = &H8&              '窗口總在頂層
Private Const WS_EX_OVERLAPPEDWINDOW = (WS_EX_WINDOWEDGE Or WS_EX_CLIENTEDGE) 'WS_EX-CLIENTEDGE和WS_EX_WINDOWEDGE的組合
Private Const WS_EX_PALETTEWINDOW = (WS_EX_WINDOWEDGE Or WS_EX_TOOLWINDOW Or WS_EX_TOPMOST) 'WS_EX_WINDOWEDGE和WS_EX_TOOLWINDOW和WS_EX_TOPMOST的組合
Private Const WS_EX_DLGMODALFRAME = &H1&        '帶雙邊的窗口
Private Const WS_EX_NOPARENTNOTIFY = &H4&       '窗口在創建和銷毀時不向父窗口發送WM_PARENTNOTIFY消息
Private Const WS_EX_TRANSPARENT = &H20&         '窗口透眀
Private Const WS_EX_MDICHILD = &H40&            'MDI子窗口
Private Const WS_EX_CONTEXTHELP = &H400&        '標題欄包含問號聯機幫助按鈕
Private Const WS_EX_RIGHT = &H1000&             '窗口具有右對齊屬性
Private Const WS_EX_RTLREADING = &H2000&        '窗口文本自右向左顯示
Private Const WS_EX_LEFTSCROLLBAR = &H4000&     '標題欄在客戶區的左邊
Private Const WS_EX_CONTROLPARENT = &H10000     '允許用戶使用Tab鍵在窗口的子窗口間搜索
Private Const WS_EX_STATICEDGE = &H20000        '為不接受用戶輸入的項創建一個三維邊界風格
Private Const WS_EX_APPWINDOW = &H40000         '在任務欄上顯示頂層窗口的標題按鈕
Private Const WS_EX_LAYERED = &H80000           '窗口具有透眀屬性(Win2000)以上
Private Const WS_EX_NOINHERITLAYOUT = &H100000 '窗口布局不傳遞給子窗口(Win2000)以上
Private Const WS_EX_LAYOUTRTL = &H400000        '水平起點在右邊的窗口
Private Const WS_EX_NOACTIVATE = &H8000000      '窗口不會變成前台窗口(Win2000)以上
Private Const WS_EX_LEFT = &H0&                 '窗口具有左對齊屬性
Private Const WS_EX_LTRREADING = &H0&           '窗口文本自左向右顯示
Private Const WS_EX_RIGHTSCROLLBAR = &H0&       '垂直滾動條在窗口的右邊界
Private Const WS_EX_ACCEPTFILES = &H10&         '接受文件拖曳
Private Const WS_EX_COMPOSITED = &H2000000      '窗體所有子窗口使用雙緩沖從低到高繪制(XP)

Private Sub Command1_Click()
    OrStyle
End Sub

Private Sub OrStyle()

    Dim lStyle As Long

    lStyle = GetWindowLong(Me.hwnd, GWL_STYLE)    '獲取原風格

    'lStyle = lStyle And Not WS_OVERLAPPEDWINDOW

'    lStyle = lStyle And Not WS_OVERLAPPED         '去除不用的風格
'    lStyle = lStyle And Not WS_THICKFRAME
'    lStyle = lStyle And Not WS_MAXIMIZEBOX

    lStyle = lStyle Or WS_SYSMENU                 '加上自定義風格
    lStyle = lStyle Or WS_GROUP
    lStyle = lStyle Or WS_MINIMIZEBOX

    SetWindowLong p.hwnd, GWL_STYLE, lStyle      '設置新的風格

    Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
    p.Refresh
End Sub


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM