film indir
Aralık
11th 2007
Penceredeki X (Kapama) Düğmesini Etkisizleştirme

Posted under Visual Basic



Öncelikle Bir class oluşturuyoruz.


Public Class CloseButton
    Private Declare Function GetSystemMenu Lib “user32″ (ByVal hwnd As Integer, ByVal revert As Integer) As Integer
    Private Declare Function EnableMenuItem Lib “user32″ (ByVal menu As Integer, ByVal ideEnableItem As Integer, ByVal enable As Integer) As Integer

    Private Const SC_CLOSE As Integer = &HF060
    Private Const MF_BYCOMMAND As Integer = &H0
    Private Const MF_GRAYED As Integer = &H1
    Private Const MF_ENABLED As Integer = &H0


    Public Shared Sub Disable(ByVal form As System.Windows.Forms.Form)
        ’Geri dönen değer kapama düğmesinin bir önceki durumunu belirtir
        ’Değer olarak ya MF_ENABLED ya MF_GRAYED.
        ’0xffffffffff değeri dönüyorsa X butonu yok demektir
        Select Case EnableMenuItem(GetSystemMenu(form.Handle.ToInt32, 0), SC_CLOSE, MF_BYCOMMAND Or MF_GRAYED)
            Case MF_ENABLED
            Case MF_GRAYED
            Case &HFFFFFFFF
                Throw New Exception(”The close menu item does not exist.”)
            Case Else
        End Select
    End Sub
End Class

Daha sonra bu class içindeki Disable fonksiyonunu formun Load fonksiyonundan çağırıyoruz.


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        CloseButton.Disable(Me)
    End Sub

Ayrıca formun boyutları değiştiğinde de çağırılması gerekiyor.


    Private Sub Form1_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.SizeChanged
        CloseButton.Disable(Me)
    End Sub

Trackback URI | Comments RSS

Yorum Yaz - Leave a Reply