Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-窗体/数据页

用代码禁止关闭按钮,即数据库窗口右上角的“X”失效

时 间:2007-10-27 11:00:56
作 者:竹笛   ID:8  城市:上海  QQ:2851379730点击这里给张志发消息
摘 要:用代码禁止关闭按钮,即数据库窗口右上角的“X”失效
正 文:

用代码禁止关闭按钮,即数据库窗口右上角的“X”失效

来源:alex

曾经有人问过这个问题,是为了防止用户不按正常程序退出。

在程序开始的窗体里加入:
Private Declare Function GetSystemMenu Lib "User32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function DeleteMenu Lib "User32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long

Private Sub FORM_Load()

  Const MF_BYCOMMAND = &H0&
  Const SC_CLOSE = &HF060

  Dim hMenu As Long
  
  hMenu = GetSystemMenu(Application.hWndAccessApp, 0)
  
  Call DeleteMenu(hMenu, SC_CLOSE, MF_BYCOMMAND)
  
End Sub

在ACCESS 2000中通过测试,97和XP没有测试过。

来源:红尘如烟

Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, ByVal bRevert As Long) As Long

Private Declare Function EnableMenuItem Lib "user32" (ByVal hMenu As Long, ByVal wIDEnableItem As Long, ByVal wEnable As Long) As Long

Const MF_GRAYED = &H1&
Const MF_BYCOMMAND = &H0&
Const SC_CLOSE = &HF060&

'-------------------------------------------------------
 '启用\禁止应用程序的关闭按钮,true为启用,false为禁止

'如:CloseButtonState True 为启用
 '  CloseButtonState False 为禁止
                   
 '-------------------------------------------------------
Public Function CloseButtonState(boolClose As Boolean)
    Dim hWnd As Long
    Dim wFlags As Long
    Dim hMenu As Long
    Dim result As Long
      
    hWnd = Application.hWndAccessApp
    hMenu = GetSystemMenu(hWnd, 0)
    If Not boolClose Then
        wFlags = MF_BYCOMMAND or MF_GRAYED
    Else
        wFlags = MF_BYCOMMAND And Not MF_GRAYED
    End If
   
    result = EnableMenuItem(hMenu, SC_CLOSE, wFlags)
End Function



Access软件网QQ交流群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助