กระทู้เก่าบอร์ด อ.Yeadram
3,184 15
URL.หัวข้อ /
URL
รบกวนอาจารย์ช่วยแก้ไขโค้ดซ่อนปุ่ม[X]หน่อยค่ะ
หนูได้โค้ดนี้มาจากเน็ตเพื่อจะซ่อนปุ่ม [X]ของ Access
แต่มันซ่อนผิดตำแหน่งค่ะ คือแทนที่มันจะซ่อน[X] แต่มันไปซ่อนปุ่ม[-]แทนค่ะ ไม่ทราบว่าต้องแก้ไขอย่างไรคะ
==========
-Call ShowAccessCloseButton(False) เมื่อต้องการให้ซ่อน
-Call ShowAccessCloseButton(true) เมื่อต้องการให้โชว์
==========
แต่มันซ่อนผิดตำแหน่งค่ะ คือแทนที่มันจะซ่อน[X] แต่มันไปซ่อนปุ่ม[-]แทนค่ะ ไม่ทราบว่าต้องแก้ไขอย่างไรคะ
Option Explicit
Private Const GWL_STYLE = (-16)
Private Const WS_CAPTION = &HC00000
Private Const WS_MINIMIZEBOX = &H20000
Private Const WS_MAXIMIZEBOX = &H10000
Private Const WS_SYSMENU = &H80000
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOZORDER = &H4
Public Const SWP_FRAMECHANGED = &H20
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" ( _
ByVal hwnd As Long, _
ByVal nIndex As Long _
) As Long
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 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
Function ShowAccessCloseButton(Show As Boolean) As Long
Dim hwnd As Long
Dim nIndex As Long
Dim dwNewLong As Long
Dim dwLong As Long
hwnd = hWndAccessApp
nIndex = GWL_STYLE
Const wFlags = SWP_NOSIZE + SWP_NOZORDER + SWP_FRAMECHANGED + SWP_NOMOVE
Const FLAGS_COMBI = WS_MINIMIZEBOX Or WS_MAXIMIZEBOX Or WS_SYSMENU
dwLong = GetWindowLong(hwnd, nIndex)
If Show Then
dwNewLong = (dwLong Or FLAGS_COMBI)
Else
dwNewLong = (dwLong And Not FLAGS_COMBI)
End If
Call SetWindowLong(hwnd, nIndex, dwNewLong)
Call SetWindowPos(hwnd, 0&, 0&, 0&, 0&, 0&, wFlags)
End Function
==========
-Call ShowAccessCloseButton(False) เมื่อต้องการให้ซ่อน
-Call ShowAccessCloseButton(true) เมื่อต้องการให้โชว์
==========
Time: 0.3474s