Any thoughts?
Code: Select all
ExamineDesktops()
InitSprite()
DPI = DesktopResolutionX()
Global ParameterID.s = "", hWnd, pSize.RECT
Procedure Callback(hWnd, Message, wParam, lParam)
Protected Retval
Select Message
Case #WM_CLOSE
End
EndSelect
Retval = DefWindowProc_(hWnd, Message, wParam, lParam)
ProcedureReturn Retval
EndProcedure
Procedure Preview()
hWnd = Val(ParameterID)
GetClientRect_(hWnd, @PSize.RECT)
If OpenWindow(0, 0, ((pSize\bottom / DPI) - (((pSize\right / DPI) / 16) * 9)) / 2, pSize\right / DPI, ((pSize\right / DPI) / 16) * 9, "", #WS_CHILD, hWnd)
OpenWindowedScreen(WindowID(0), 0, 0, DesktopWidth(0) +110, DesktopHeight(0) -55, 1, 0, 0) ; 152 x 112 preview size in Windows XP
SetWindowCallback(@Callback())
;SetWindowState(0, #PB_Window_Maximize) ;temp fix PureBasic 5.72
;SetWindowState(0, #PB_Window_Normal) ;temp fix PureBasic 5.72
EndIf
CatchSprite(0, ?PreviewStart)
AddWindowTimer(0, 1, 16)
Repeat
ClearScreen(RGB(50, 100, 200))
WaitWindowEvent()
DisplaySprite(0, 0, 0)
FlipBuffers()
ForEver
EndProcedure
Para.s = ProgramParameter()
Parameter.s = LCase(Left(ReplaceString(Para.s,"-","/"), 2))
Select Parameter
Case "/p"
ParameterID = ProgramParameter()
Preview()
Case "/c"
MessageRequester("", "Settings")
Case "/s"
MessageRequester("", "Screen Saver")
EndSelect
DataSection
PreviewStart:
IncludeBinary "C:\Users\jbake\Desktop\Preview.bmp"
PreviewEnd:
EndDataSection