Montag, 27. Dezember 2010

Form im Vollbild ohne Taskleiste anzeigen / Fullscreen form without taskbar

Vor ein paar Wochen drehte es sich in einem Forum um die Frage, ob und wie es möglich wäre, eine VFP Form maximiert darzustellen, ohne dass dabei die Taskbar zu sehen ist.

Dies ist bspw. darüber zu erreichen, dass wir uns eine Form bauen, die sich immer im Vordergrund befindet. Im folgenden Beispielcode wird zunächst eine kleine Form erzeugt, die sich bei einem Doppelklick auf den kompletten Bildschirm vergrößert und sobald sie den Fokus verliert wieder in den normalen Modus zurück schaltet.

PUBLIC oForm
oForm = CREATEOBJECT([MyForm])
oForm.Visible = .T.

DEFINE CLASS MyForm AS Form

    AlwaysOnTop    = .T.
    BorderStyle    = 0
    ShowWindow     = 2
    TitleBar       = 1
    Caption        = []
    Top            = 0
    Left           = 0
    Width          = 300
    Height         = 300

    PROCEDURE Init
        This.MinHeight   = This.Width
        This.MinWidth    = This.Height
    ENDPROC 
            
    PROCEDURE LostFocus
        This.ToggleFullScreen()
    ENDPROC 

    PROCEDURE DblClick
        This.ToggleFullScreen()
    ENDPROC 
    
    PROCEDURE ToggleFullScreen
        IF This.TitleBar  = 1
            This.TitleBar = 0
            This.Width    = SYSMETRIC(1)
            This.Height   = SYSMETRIC(2)
        ELSE 
            This.TitleBar = 1
            This.Height   = This.MinHeight
            This.Width    = This.MinWidth
        ENDIF 
    ENDPROC 
    
ENDDEFINE