Buchempfehlung
MySQL kurz & gut
MySQL kurz & gut
Das preiswerte Taschen- buch stellt MySQL-rele- vante Inhalte systematisch und knapp dar, sodass es sich optimal zum Nach- schlagen beim Pro- grammieren eignet. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Code-Beispiel

Code-Beispiele » System

Fenster in den Vordergrund holen

Lizenz:Erster Autor:Letzte Bearbeitung:
k. A.AdministratorSebastian 25.07.2008

Startet man aus der eigenen Anwendung heraus eine andere, so ist es möglich, dass das Fenster der eigenen Anwendung dauerhaft den Focus verliert, also in den Hintergrund verschwindet. Um das Fenster nach dem Starten der externen Anwendung wieder in den Vordergrund zu holen, kann man wie im folgenden Code-Beispiel gezeigt vorgehen:

'
'  FreeBASIC-Fenster in den Vordergrund bringen
'  Getestet mit FreeBASIC 0.20.0 SVN (Win)
'
'  Basiert auf ActiveVB-Tipp Nr. 214 (www.activevb.de)
'  Portiert nach FreeBASIC und im Funktionsumfang erweitert
'  durch Sebastian - 25.07.2008 - www.freebasic-portal.de
'
'  Der Quelltext kann frei verwendet werden.
'  Für eventuelle Schäden wird nicht gehaftet.
'

' ==== WinAPI Typendefinitionen ====
#INCLUDE ONCE "windows.bi"


' ==== Eigene Fenster-Nach-Vorne-SUB ====
DECLARE SUB AbNachVorn ()

' ==== SUB zur Erzeugung des Testbilds ====
DECLARE SUB Testbild ()

CONST Fenstertitel = "Test-o-matic"

Randomize TIMER

SCREEN 12
WINDOWTITLE Fenstertitel
Testbild

SHELL "start notepad"
SLEEP 3000
AbNachVorn()

SLEEP: END

SUB Testbild ()
    DIM AS INTEGER i, PosX, PosY, Radius, Farbe, MaxRadius=30
    FOR i = 1 TO 150
        PosX = INT(RND*639)+1
        PosY = INT(RND*479)+1
        Radius = INT(RND*MaxRadius)+1
        Farbe = INT(RND*15)+1
        CIRCLE (PosX,PosY),Radius,Farbe
    NEXT i
END SUB

SUB AbNachVorn ()
    DIM AS HANDLE   Handle
    DIM AS INTEGER  Result
    DIM AS WINDOWPLACEMENT WndPlcmt
    Handle = FindWindow(0, STRPTR(Fenstertitel))
    SetWindowPos Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE
    SetWindowPos Handle, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE
    SetFocus Handle
    WITH WndPlcmt
        .Length = SIZEOF(WndPlcmt)
        Result = GetWindowPlacement(Handle, @WndPlcmt)
        IF Result THEN
            IF .showCmd = SW_SHOWMINIMIZED THEN
                .flags = 0
                .showCmd = SW_SHOWNORMAL
                Result = SetWindowPlacement(Handle, @WndPlcmt)
            ELSE
                SetForegroundWindow(Handle)
                Result = BringWindowToTop(Handle)
            END IF
        END IF
    END WITH
END SUB

Zusätzliche Informationen und Funktionen
  • Das Code-Beispiel wurde am 25.07.2008 von AdministratorSebastian angelegt.
  • Die aktuellste Version wurde am 25.07.2008 von AdministratorSebastian gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen