AccessTr.neT

Tam Versiyon: access veritabanı X close tuşunu ve alt+f4 tuşunu kapatma
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2
X tuşunu kapatma

önce bir clas modül ve içine

Kod:
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 Long, ByVal wEnable As Long) As Long

Private Declare Function GetMenuItemInfo Lib "user32" Alias _
   "GetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal 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(80, 0)
    MI.cch = Len(MI.dwTypeData)
    MI.fMask = MF_GRAYED
    MI.wID = SC_CLOSE
    hWnd = Application.hWndAccessApp
    hMenu = GetSystemMenu(hWnd, 0)
    result = GetMenuItemInfo(hMenu, MI.wID, 0, MI)
    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(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 Property

sonra bir noraml modül ve içine

Kod:
Function InitApplication()
   Dim c As CloseCommand
   Set c = New CloseCommand
  
   'Disable Close menu.
   c.Enabled = False
End Function


sonra bir makro ve kod çalıştır seç ve kod bölümüne

Kod:
InitApplication()

yazdıktan sonra adını Autoexec olarak değiştir.

bu özellikle kendi menüsünü tasarlayanlar için ideal bir uygulamadır.

alt f4 olayıda gelecek matinedefilmin devamında süreli bir film olsun değilmi
neyse hadi vereyim

Kod:
Private Sub Form_Unload(Cancel As Integer)
    Cancel = True
End Sub
  
  
Private Sub btnClose_Click()
    Me.OnUnload = ""
    DoCmd.Close acForm, Me.Name, acSaveNo
End Sub

hepsi bu
buda başka bir x butonu kapatma


Kod:
Private Declare Function apiEnableMenuItem Lib "user32" Alias _
    "EnableMenuItem" (ByVal hMenu As Long, ByVal wIDEnableMenuItem As Long, _
     ByVal wEnable As Long) As Long
    
Private Declare Function apiGetSystemMenu Lib "user32" Alias _
         "GetSystemMenu" (ByVal hwnd As Long, ByVal flag As Long) _
         As Long

Function EnableDisableControlBox(bEnable As Boolean, _
                                 Optional ByVal lhWndTarget As Long = 0) As Long

On Error GoTo ErrorHandling_Err

    ' ----------------------------------------------------------------------
    ' Purpose: Example of how to disable or enable the control box of
    '          a form, report, or the Access parent window.
    '
    ' Accepts: bEnable, which determines whether to disable or enable
    '          the control box
    '
    '          Also accepts lhWndTarget (which is optional), if you want
    '          to use a window handle other than the Access parent window.
    '
    ' Returns: N/A
    '
    ' Example usage: lRetVal = EnableDisableControlBox(True) to enable -OR-
    '                lRetVal = EnableDisableControlBox(False) to disable
    '
    ' NOTE: If no hWnd is passed in for a specific form, then the code
    '       assumes you want to enable/disable the Access parent window
    ' ----------------------------------------------------------------------

Const MF_BYCOMMAND = &H0&
Const MF_DISABLED = &H2&
Const MF_ENABLED = &H0&
Const MF_GRAYED = &H1&
Const SC_CLOSE = &HF060&

Dim lhWndMenu As Long
Dim lReturnVal As Long
Dim lAction As Long

lhWndMenu = apiGetSystemMenu(IIf(lhWndTarget = 0, Application.hWndAccessApp, lhWndTarget), False)

If lhWndMenu <> 0 Then
     If bEnable Then
        lAction = MF_BYCOMMAND Or MF_ENABLED
     Else
        lAction = MF_BYCOMMAND Or MF_DISABLED Or MF_GRAYED
     End If
     lReturnVal = apiEnableMenuItem(lhWndMenu, SC_CLOSE, lAction)
End If

EnableDisableControlBox = lReturnVal

ErrorHandling_Err:
    If Err Then
        'Trap your error(s) here, if any!
    End If
End Function
'
'
'
'
Public Function HideAccessCloseButton()

    EnableDisableControlBox False
    
End Function

Public Function ShowAccessCloseButton()

    EnableDisableControlBox True
    
End Function


call HideAccessCloseButton kapatır

diğeri açar
eşref hocam, kodlar için teşekkürler
Çok teşekkürler esref hocam,
gerçekten siz çok faydalı birisiniz,
iyiki varsınız...
Merhaba;

Eşref hocam çok teşekkürederim Elinize sağlık.

Selamlar.
ben formumda x ve alt-f4 tuşunu kodlarla değil de . tasarımda değiştiriyorum. formu tasarım görünümünde açıp özelliklerine gelin(form özelliklerine). oradan büyüyebilir ve küçülebiliri hayır yaptığınızda alt-f4 butonu kalkmış olurç aynı şekilde kapatma yada çıkışıda hayır yaptığınızda kapatma butonuda iptal olmuş olur.
Formun özelliklerinden denetim kutusunu kapattığınızda X(close), simge durumuna küçült ve ekranı kapla tuşlaraının görünmemesini saglarsınız.
Sayfalar: 1 2