Không thể tắt nút Close trên thanh tiêu đề !

glasseggs

New Member
Hội viên mới
Cho mình hỏi chút, mình có đoạn code này để bỏ phím Close trên thanh tiêu đề, trong Access 2007 Sp2 máy của mình thì chạy ngon lành nhưng máy Công ty Access 2007 thì lại không có tác dụng.
Nó bị sao vậy.

Sub HideAccessCloseButton()

Dim lngStyle As Long

lngStyle = GetWindowLong(hWndAccessApp, GWL_STYLE)
lngStyle = lngStyle And Not WS_SYSMENU
Call SetWindowLong(hWndAccessApp, GWL_STYLE, lngStyle)
Call SetWindowPos(hWndAccessApp, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_DRAWFRAME)

End Sub

Trong sự kiện mở Form chính :

Private Sub Form_Open(Cancel As Integer)
HideAccessCloseButton
End Sub

:anmi:
 
Ðề: Không thể tắt nút Close trên thanh tiêu đề !

Bạn phải gọi thêm hàm API và hai hàm khác nữa. Xem lại đoạn code của bạn sẽ hiểu
Thân
 
Ðề: Không thể tắt nút Close trên thanh tiêu đề !

Có phải bạn nói hàm này không ,mình quên post. Nhưng máy mình vẫn chạy ngon,chỉ có máy ở Công ty là chẳng có tác dụng gì thôi :

Private Const GWL_EXSTYLE = (-20)
Private Const GWL_STYLE = (-16)

Private Const WS_MAXIMIZEBOX = &H10000
Private Const WS_MINIMIZEBOX = &H20000
Private Const WS_SYSMENU = &H80000

Private Const HWND_TOP = 0
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const SWP_FRAMECHANGED = &H20
Private Const SWP_DRAWFRAME = SWP_FRAMECHANGED

Private Declare Function SetWindowLong Lib "user32" _
Alias "SetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long, ByVal dwNewLong As Long) _
As Long
Private Declare Function GetWindowLong Lib "user32" _
Alias "GetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long) As Long
Private Declare Function SetWindowPos Lib "user32" _
(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
ByVal X As Long, ByVal Y As Long, ByVal cx As Long, _
ByVal cy As Long, ByVal wFlags As Long) As Long

Private Declare Function WinExec Lib "kernel32" (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Long 'd?nh nghia h?ng c?n dùng
Const SW_SHOWNORMAL = 1
 
Ðề: Không thể tắt nút Close trên thanh tiêu đề !

Private Declare Function SetWindowLong Lib "user32" _
Alias "SetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long, ByVal dwNewLong As Long) _
As Long

Bác ơi giúp mình với, mình thử cách của bác thì chương trình báo lổi đoạn code trên. Thông báo lổi là: "Compile error: only comments may appear after End Sub, End Function, or Property"

Giúp với, cám ơn nhiều...:deny2:
 
Ðề: Không thể tắt nút Close trên thanh tiêu đề !

Đây ,bạn copy y nguyên của mình vào Form chính, nhớ là cho vào phần Declarations nhé ()

Option Compare Database

Private Const GWL_EXSTYLE = (-20)
Private Const GWL_STYLE = (-16)

Private Const WS_MAXIMIZEBOX = &H10000
Private Const WS_MINIMIZEBOX = &H20000
Private Const WS_SYSMENU = &H80000

Private Const HWND_TOP = 0
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const SWP_FRAMECHANGED = &H20
Private Const SWP_DRAWFRAME = SWP_FRAMECHANGED

Private Declare Function SetWindowLong Lib "user32" _
Alias "SetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long, ByVal dwNewLong As Long) _
As Long
Private Declare Function GetWindowLong Lib "user32" _
Alias "GetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long) As Long
Private Declare Function SetWindowPos Lib "user32" _
(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
ByVal X As Long, ByVal Y As Long, ByVal cx As Long, _
ByVal cy As Long, ByVal wFlags As Long) As Long

Private Declare Function WinExec Lib "kernel32" (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Long 'd?nh nghia h?ng c?n dùng
Const SW_SHOWNORMAL = 1
Sub HideAccessCloseButton()

Dim lngStyle As Long

lngStyle = GetWindowLong(hWndAccessApp, GWL_STYLE)
lngStyle = lngStyle And Not WS_SYSMENU
Call SetWindowLong(hWndAccessApp, GWL_STYLE, lngStyle)
Call SetWindowPos(hWndAccessApp, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_DRAWFRAME)

End Sub

Private Sub Form_Open(Cancel As Integer)
HideAccessCloseButton
End Sub
 
Ðề: Không thể tắt nút Close trên thanh tiêu đề !

Cám ơn bác, mình làm được rùi. Trước đây mình làm bị lổi vì mình không đặt code trong Declarations(). Giờ thì OK rùi, cám ơn bác nhiều lắm...
 
Ðề: Không thể tắt nút Close trên thanh tiêu đề !

Đây ,bạn copy y nguyên của mình vào Form chính, nhớ là cho vào phần Declarations nhé ()

Option Compare Database

Private Const GWL_EXSTYLE = (-20)
Private Const GWL_STYLE = (-16)

Private Const WS_MAXIMIZEBOX = &H10000
Private Const WS_MINIMIZEBOX = &H20000
Private Const WS_SYSMENU = &H80000

Private Const HWND_TOP = 0
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const SWP_FRAMECHANGED = &H20
Private Const SWP_DRAWFRAME = SWP_FRAMECHANGED

Private Declare Function SetWindowLong Lib "user32" _
Alias "SetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long, ByVal dwNewLong As Long) _
As Long
Private Declare Function GetWindowLong Lib "user32" _
Alias "GetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long) As Long
Private Declare Function SetWindowPos Lib "user32" _
(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
ByVal X As Long, ByVal Y As Long, ByVal cx As Long, _
ByVal cy As Long, ByVal wFlags As Long) As Long

Private Declare Function WinExec Lib "kernel32" (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Long 'd?nh nghia h?ng c?n dùng
Const SW_SHOWNORMAL = 1
Sub HideAccessCloseButton()

Dim lngStyle As Long

lngStyle = GetWindowLong(hWndAccessApp, GWL_STYLE)
lngStyle = lngStyle And Not WS_SYSMENU
Call SetWindowLong(hWndAccessApp, GWL_STYLE, lngStyle)
Call SetWindowPos(hWndAccessApp, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_DRAWFRAME)

End Sub

Private Sub Form_Open(Cancel As Integer)
HideAccessCloseButton
End Sub
Chào bạn,mình áp dụng đoạn Code của bạn vào Access 2003 thì nó làm cho các nút Max, Min, Close mất luôn, trên cả tuyệt vời.Khi mà Form bắt đầu Load lên là các nút ấy biến mất ngay.
http://www.mediafire.com/file/3jytmujrg0n/vg.mdb
 
Ðề: Không thể tắt nút Close trên thanh tiêu đề !

Các bạn đều làm ngon lành, mình cũng vậy.
Chỉ có điều mình chưa lý giải được mang đến máy Công ty thì nó lại chả có tác dụng,dù cũng là Access 2007
 

CẨM NANG KẾ TOÁN TRƯỞNG


Liên hệ: 090.6969.247

KÊNH YOUTUBE DKT

Cách làm file Excel quản lý lãi vay

Đăng ký kênh nhé cả nhà

SÁCH QUYẾT TOÁN THUẾ


Liên hệ: 090.6969.247

Top