Here's a win32 solution:
?win32
Extern "win32"
Function GetActiveWindow%()
Function GetDesktopWindow%()
Function GetWindowRect%(hWnd%, lpRect: Byte Ptr)
Function SetWindowPos%(hWnd%, after%, x%, y%, w%, h%, flags%)
End Extern
?
Type TRect
Field L%, T%, R%, B%
End Type
' -----------------------------------------------------------------------------
' ccCentreWindow
' -----------------------------------------------------------------------------
Function ccCentreWindow()
'Centres the current graphics window on the desktop
?Win32
Local hWnd% = GetActiveWindow()
ccCentreWindowHandle(hWnd%)
?
End Function
Function ccCentreWindowHandle(hWnd%)
'Centres the current graphics window on the desktop
'Pass a handle in
?Win32
Local desk_hWnd% = GetDesktopWindow()
Local desk:TRect = New TRect
Local window:TRect= New TRect
GetWindowRect(desk_hWnd,desk) ' Get Desktop Dimensions
'Get Window Dimensions because final window may have been resized (by BlitzMax) to fit the desktop resultion! (Grey Alien)
GetWindowRect(hWnd,window)
'Centre Window
SetWindowPos(hWnd, -2, (desk.r / 2) - ((window.r-window.l) / 2), (desk.b / 2) - ((window.b-window.t) / 2), 0, 0, 1)
?
End Function
Matt, haven't seen you on the forums for a while. Have you checked out my framework demo yet? Click the link in my sig, it's a SHMUP (of sorts).
|