You cannot remove the close button alone, but you can disable it:
rem Menu button identifiers
#constant SC_CLOSE 0xf060
#constant SC_MINIMIZE 0xf020
#constant SC_MAXIMIZE 0xf030
rem EnableMenuItem flags
#constant MF_BYCOMMAND 0x00000000
#constant MF_BYPOSITION 0x00000400
#constant MF_DISABLED 0x00000002
#constant MF_ENABLED 0x00000000
#constant MF_GRAYED 0x00000001
rem Load library
#constant user32 1
load dll "user32.dll", user32
rem Obtain window handle (replace with whatever approach you use)
hwnd = get dbpro window()
rem Disable the close button of the window
DisableWindowButton(hwnd, SC_CLOSE)
wait key
end
rem WINAPI wrapper functions from user32.dll
function GetSystemMenu(hWnd as dword, bRevert as boolean)
hMenu = call dll(user32, "GetSystemMenu", hWnd, bRevert)
endfunction hMenu
function EnableMenuItem(hMenu as dword, dwItemId as dword, dwFlags as dword)
result = call dll(user32, "EnableMenuItem", hMenu, dwItemId, dwFlags)
endfunction result
rem Convenience functions for disabling / enabling window buttons using the above functions
function DisableWindowButton(hWnd as dword, dwButton as dword)
hMenu = GetSystemMenu(hWnd, 0)
EnableMenuItem(hMenu, SC_CLOSE, MF_BYCOMMAND || MF_DISABLED || MF_GRAYED)
endfunction
function EnableWindowButton(hWnd as dword, dwButton as dword)
hMenu = GetSystemMenu(hWnd, 0)
EnableMenuItem(hMenu, SC_CLOSE, MF_BYCOMMAND || MF_ENABLED)
endfunction
"Why do programmers get Halloween and Christmas mixed up?" Because Oct(31) = Dec(25)