Chào mừng đến với Diễn đàn Dân Kế Toán - Kế toán tổng hợp thực tế.
Kết quả 1 đến 8 của 8
  1. #1
    Ngày tham gia
    Mar 2016
    Bài viết
    1

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

    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:

  2. #2
    Ngày tham gia
    Dec 2015
    Bài viết
    4
    Ðề: 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

  3. #3
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: 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

  4. #4
    Ngày tham gia
    Jan 2016
    Bài viết
    137
    Ðề: Không thể tắt nút Close trên thanh tiêu đề !




    Trích dẫn Gửi bởi glasseggs
    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:

  5. #5
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: 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

  6. #6
    Ngày tham gia
    Aug 2015
    Bài viết
    19
    Ðề: 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...

  7. #7
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Không thể tắt nút Close trên thanh tiêu đề !




    Trích dẫn Gửi bởi glasseggs
    Đâ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

  8. #8
    Ngày tham gia
    May 2016
    Bài viết
    0
    Ðề: 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

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •