Me.WindowState = 2 '(或vbMaximized)可以实现全屏
问题提出,在全屏状态下,屏蔽maxButton,minButton和菜单.
     With Form1 
       .WindowState = 2
       .MaxButton = False
       .MinButton = False
     End With
不管是用me还是form1
要执行
       .MaxButton = False
       .MinButton = False
提示”函数或接口标为受限制的,或函数使用了VB中不支持的自动类型“ 
请问各位大侠如何解决,谢谢.

解决方案 »

  1.   

    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 Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
    Private Const SW_SHOWNA = 8
    Private Const SW_SHOW = 5Private Const WS_MAXIMIZEBOX = &H10000
    Private Const WS_MINIMIZEBOX = &H20000
    Private Const GWL_STYLE = (-16)
    Private Sub Form_Resize()
        Dim Style As Long, NewStyle As Long    If Me.WindowState = 2 Then
        
        
        Style = GetWindowLong(Me.hwnd, GWL_STYLE)
        NewStyle = Style And Not (WS_MAXIMIZEBOX Or WS_MINIMIZEBOX)
        SetWindowLong Me.hwnd, GWL_STYLE, NewStyle
        'ShowWindow Me.hwnd, SW_SHOWNA    End If
    End Sub
      

  2.   

    谢谢,2楼的解答.在你的程序上稍改了一下,目的达到.
    还有点功能需要补充,
    Private Const WS_MAXIMIZEBOX = &H10000
    Private Const WS_MINIMIZEBOX = &H20000
    在这个基础上将X和菜单也给屏蔽掉.
    ------------
    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 Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
    Private Const SW_SHOWNA = 8
    Private Const SW_SHOW = 5Private Const WS_MAXIMIZEBOX = &H10000
    Private Const WS_MINIMIZEBOX = &H20000
    Private Const GWL_STYLE = (-16)
    Private Sub Form_Load()
        Dim Style As Long, NewStyle As Long     Me.WindowState = 2
        
        
        Style = GetWindowLong(Me.hwnd, GWL_STYLE)
        NewStyle = Style And Not (WS_MAXIMIZEBOX Or WS_MINIMIZEBOX)
        SetWindowLong Me.hwnd, GWL_STYLE, NewStyle
        'ShowWindow Me.hwnd, SW_SHOWNA    
      
    End Sub
      

  3.   

    手动设置 BorderStyle 为None
    程序中Me.WindowState = 2 
    就是我要的结果
    但是我在form中又调用autocad也要让它为无边界,有时间再搞吧.