Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Thủ Thuật] Disables or Enabled close button (x) Access
#1
Theo yêu cầu của bạn ledangvan, toi gửi các bạn cách Disables hoặc Ennabled nút Close (dấu x) của Access

1/ Bạn tạo một Class Modul, đặt tên là CloseCommand và chép đoạn code này vào

Mã PHP:
Option Compare Database
Option Explicit

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 LongByVal wEnable As Long) As Long

Private Declare Function GetMenuItemInfo Lib "user32" Alias _
   
"GetMenuItemInfoA" (ByVal hMenu As LongByVal un As LongByVal b As _
   Long
lpMenuItemInfo As MENUITEMINFO) As Long

Private Type MENUITEMINFO
    cbSize 
As Long
    fMask 
As Long
    fType 
As Long
    fState 
As Long
    wID 
As Long
    hSubMenu 
As Long
    hbmpChecked 
As Long
    hbmpUnchecked 
As Long
    dwItemData 
As Long
    dwTypeData 
As String
    cch 
As Long
End Type

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

Public 
Property Get Enabled() As Boolean
    Dim hwnd 
As Long
    Dim hMenu 
As Long
    Dim Result 
As Long
    Dim MI 
As MENUITEMINFO
    
    MI
.cbSize Len(MI)
    
MI.dwTypeData String(800)
    
MI.cch Len(MI.dwTypeData)
    
MI.fMask MF_GRAYED
    MI
.wID SC_CLOSE
    hwnd 
Application.hWndAccessApp
    hMenu 
GetSystemMenu(hwnd0)
    
Result GetMenuItemInfo(hMenuMI.wID0MI)
    
Enabled = (MI.fState And MF_GRAYED) = 0
End Property

Public Property Let Enabled(boolClose As Boolean)
    
Dim hwnd As Long
    Dim wFlags 
As Long
    Dim hMenu 
As Long
    Dim Result 
As Long
    
    hwnd 
Application.hWndAccessApp
    hMenu 
GetSystemMenu(hwnd0)
    If 
Not boolClose Then
        wFlags 
MF_BYCOMMAND Or MF_GRAYED
    
Else
        
wFlags MF_BYCOMMAND And Not MF_GRAYED
    End 
If
    
Result EnableMenuItem(hMenuSC_CLOSEwFlags)
End Property 

2/ Tạo một modul mới và chép doạn code này vào

Mã PHP:
Option Compare Database
Option Explicit

Function InitApplication(intEnab As Boolean)
On Error GoTo err_proc
'Enabled or disables the MS application close (X) button - Dependant on state of intEnab
'
Uses Class Module 'Close Command'
Const C_PROC_NAME "InitApplication"

   
Dim C As CloseCommand
   Set C 
= New CloseCommand
  
   C
.Enabled intEnab
  
exit_proc
:
    Exit Function

err_proc:
    
MsgBox "Error in Function: '" C_PROC_NAME "'" Chr(13) & Err.Description
    Resume exit_proc

End 
Function 

Khi sử dụng gọi InitApplication(False) để Enable và ngược lại

Thân mến
Chữ ký của Xuân Thanh Trăm năm trước thì ta chưa gặp
Trăm năm sau biết gặp được không?
Cuộc đời sắc sắc không không
Thì thôi ta cứ hết lòng vì nhau
ღღღღღTài sản của Xuân Thanh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn haquocquan
#2
Bạn có thể hướng dẫn kỹ hơn ko bạn? Đoạn code Module thứ 2 mình ko biết đặt tên gì?
Chữ ký của ndthanh29 Xin chào, mình là ndthanh29, Tham gia http://thuthuataccess.com/forum từ ngày 08-10 -12.
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  Lấy về số seri CPU, ổ cứng MainBoard trong Access Noname 33 12,300 08-06-16, 11:23 PM
Bài mới nhất: maidinhdan
  Thuộc tính Startup MS Access toàn tập với VBA Noname 2 2,740 18-04-16, 04:50 PM
Bài mới nhất: ongke0711
  Hàm đọc số dùng mã Unicode trong Access Noname 28 11,705 23-03-16, 11:45 PM
Bài mới nhất: thiennamlong
  [Thủ Thuật] Hỏi_Xác định phiên bản Access đang dùng maidinhdan 1 380 18-12-15, 08:43 AM
Bài mới nhất: ongke0711
Star Code tạo Serial, License Key cho Access nguoilinh229 3 502 06-11-15, 02:07 PM
Bài mới nhất: kieu manh

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ