怎样把窗口的关闭按扭和最大化按扭去掉?或者是成为不可用不着

解决方案 »

  1.   

    去掉最大化:设置MaxButton属性为false去掉关闭:
    Option Explicit
    Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
    Private Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
    Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
    Const MF_BYPOSITION = &H400&
    Const MF_REMOVE = &H1000&
    Private Sub Form_Load()
        Dim hSysMenu As Long, nCnt As Long
     
            hSysMenu = GetSystemMenu(Me.hwnd, False)    If hSysMenu Then
            
            nCnt = GetMenuItemCount(hSysMenu)
            If nCnt Then
             
                RemoveMenu hSysMenu, nCnt - 1, MF_BYPOSITION Or MF_REMOVE
                RemoveMenu hSysMenu, nCnt - 2, MF_BYPOSITION Or MF_REMOVE ' Remove the seperator
                DrawMenuBar Me.hwnd
             
            End If
        End If
    End Sub
      

  2.   

    假如我还想去掉最小化按扭,那我应该还做些什么呢?
    //
    MinButton 为false嘛
      

  3.   

    晕倒......窗体的ControlBox属性设为F就行了别告诉我是别人的窗体啊~~~~
      

  4.   


    QueryUnload 事件
          在一个窗体或应用程序关闭之前发生。当一个 MDIForm 对象关闭时,QueryUnload 事件先在 MDI 窗体发生,然后在所有 MDI 子窗体中发生。如果没有窗体取消 QueryUnload 事件,该 Unload 事件首先发生在所有其它窗体中,然后再发生在 MDI 窗体中。当一个子窗体或一个 Form 对象关闭时,在那个窗体中的 QueryUnload 事件先于该窗体的 Unload 事件发生。语法Private Sub Form_QueryUnload(cancel As Integer, unloadmode As Integer)Private Sub MDIForm_QueryUnload(cancel As Integer, unloadmode As Integer)QueryUnload 事件语法包括下列部分:部分 描述 
    cancel 一个整数。将此参数设定为除 0 以外的任何值,可在所有已装载的窗体中停止 QueryUnload 事件,并阻止该窗体和应用程序的关闭。 
    unloadmode 一个值或一个常数,如返回值中所描述的,它指示引起 QueryUnload 事件的原因。 
    返回值unloadmode 参数返回下列值:常数 值 描述 
    vbFormControlMenu 0 用户从窗体上的“控件”菜单中选择“关闭”指令。 
    vbFormCode 1 Unload 语句被代码调用。 
    vbAppWindows 2 当前 Microsoft Windows 操作环境会话结束。 
    vbAppTaskManager 3 Microsoft Windows 任务管理器正在关闭应用程序。 
    vbFormMDIForm 4 MDI 子窗体正在关闭,因为 MDI 窗体正在关闭。 
    vbFormOwner 5 因为窗体的所有者正在关闭,所以窗体也在关闭。 
    这些常数是在对象浏览器中的 Visual Basic (VB) 对象库中列出。说明此事件的典型用法是在关闭一个应用程序之前用来确保包含在该应用程序中的窗体中没有未完成的任务。例如,如果还未保存某一窗体中的新数据,则应用程序会提示保存该数据。当一个应用程序关闭时,可使用 QueryUnload 或 Unload 事件过程将 Cancel 属性设置为 True 来阻止关闭过程。但是,QueryUnload 事件是在任一个卸载之前在所有窗体中发生,而 Unload 是在每个窗体卸载时发生。
     
    Unload 事件
          当窗体从屏幕上删除时发生。当那个窗体被重新加载时,它的所有控件的内容均被重新初始化。当使用在 Control 菜单中的 Close 命令或 Unload 语句关闭该窗体时,此事件被触发。语法Private Sub object_Unload(cancel As Integer)Unload 事件语法包括下列部分:部分 描述 
    Object 一个对象表达式,其值是“应用于”列表中的一个对象。 
    Cancel 一个整数,用来确定窗体是否从屏幕删除。如果 cancel 为 0,则窗体被删除。将 cancel 设置为任何一个非零的值可防止窗体被删除。 
    说明将 cancel 设置为任何非零的值可防止窗体被删除,但不能阻止其它事件,诸如从 Microsoft Windows 操作环境中退出等。可用 QueryUnload 事件阻止从 Windows 中的退出。在窗体被卸载时,可用一个 Unload 事件过程来确认窗体是否应被卸载或用来指定想要发生的操作。也可在其中包括任何在关闭该窗体时也许需要的验证代码或将其中的数据储存到一个文件中。QueryUnload 事件在 Unload 事件之前发生。Unload 事件在 Terminate 事件之前发生。使用 Unload 语句或在一个窗体的“控件”菜单上选择“关闭”命令,用“任务窗口”列表上的“结束任务”按钮退出应用程序,在当前窗体为其一个子窗体的情况下关闭该 MDI 窗体,或当应用程序正在运行的时候退出 Microsoft Windows 操作环境等情况都可引发 Unload 事件。