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