PDA

View Full Version : Disable nút Close (X)???



quachhylam
16-12-2004, 13:40
Ai có code disable nút Close (X) thì gởi cho mình với, còn code thế nào để khi người ta click phải ở cái nút chương trình của mình dưới thanh taskbar thì có thêm menu About, hic khó nói quá, giúp với, Thanks!!!

THE LAST LEAF
16-12-2004, 15:57
Bác định thêm menu riêng vào menu hệ thống chứ gì .Bây giờ đang bận để mấy hôm nữa tui post mã cho, cả dấu menu close và nút "x" nữa

quachhylam
16-12-2004, 16:27
Thanks nhiều, lẹ lẹ nhá!!!

quachhylam
27-12-2004, 07:42
Hình như đâu có thấy gì đâu ta!!!

thuongall
27-12-2004, 08:21
Trong Form:

Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function InsertMenu Lib "user32" Alias "InsertMenuA" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As Long
Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Const MF_BYPOSITION = &H400&
Private Const MF_BYCOMMAND = &H0&
Private Const MF_STRING = &H0&
Private Const GWL_WNDPROC As Long = -4

Private Sub Form_Load()
Dim hMenu As Long
hMenu = GetSystemMenu(Me.hwnd, False)
InsertMenu hMenu, 7, MF_BYPOSITION + MF_BYCOMMAND + MF_STRING, ID_ABOUT, "About.."
hWinProc = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub

Private Sub Form_Unload(Cancel As Integer)
SetWindowLong Me.hwnd, GWL_WNDPROC, hWinProc
End Sub

Trong Module:

Private Declare Function CallWindowProc Lib "user32.dll" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Const ID_ABOUT = 1001
Public hWinProc As Long

Public Function WindowProc(ByVal hwnd As Long, ByVal Mess As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If Mess = &H112 Then
If wParam = ID_ABOUT Then MsgBox "About Click"
End If
WindowProc = CallWindowProc(hWinProc, hwnd, Mess, wParam, lParam)
End Function

quachhylam
27-12-2004, 08:26
Thanks to Thuongall
thế còn Disable nút Close (X).

haiboss
27-12-2004, 10:29
cái này code trong modul:

Option Explicit
Public Declare Function GetSystemMenu Lib "user32" _
(ByVal hwnd As Long, _
ByVal bRevert As Long) As Long

Public Declare Function RemoveMenu Lib "user32" _
(ByVal hMenu As Long, _
ByVal nPosition As Long, _
ByVal wFlags As Long) As Long
Public Const MF_BYPOSITION = &H400&


Public Sub DisableCloseWindowButton(frm As Form)
Dim hSysMenu As Long
hSysMenu = GetSystemMenu(frm.hwnd, 0)
RemoveMenu hSysMenu, 6, MF_BYPOSITION
RemoveMenu hSysMenu, 5, MF_BYPOSITION
End Sub

còn code này trên form muốn disable :

Private Sub Form_Load()
DisableCloseWindowButton Me
End Sub

được chưa.
tớ tham khảo ở đây http://www.a1vbcode.com/app.asp?ID=2368 có cả code luôn