Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [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!

Referenz - SCREENCONTROL

Referenz-Navigation

 

Syntax A: SCREENCONTROL Option, [param1 [, param2 [, param3 [, param4]]]]
Syntax B: SCREENCONTROL Option, caption
Typ: Anweisung
Kategorie: Grafik

SCREENCONTROL ermittelt oder bearbeitet Einstellungen der gfxlib.

Im folgenden werden die für 'Option' einsetzbaren Werte aufgelistet. Bitte beachten Sie, dass die angegebenen Konstanten aus der fbgfx.bi Elemente des BefehlsreferenzeintragNAMESPACEs 'FB' sind. Alle param-Variablen, die hier nicht erwähnt sind, werden mit null ausgefüllt.

In der Regel muss ein Grafik- oder OpenGL-Fenster initialisiert worden sein (siehe BefehlsreferenzeintragSCREENRES), bevor der Befehl sinnvoll eingesetzt werden kann.

Leseoptionen

WertKonstante in der fbgfx.biBedeutung
0GET_WINDOW_POSGibt die aktuelle Position des Grafikfensters als Desktopkoordinaten an.
'param1' enthält die X-Koordinate, 'param2' die Y-Koordinate.
Wird diese Funktion aufgerufen, bevor ein Grafikfenster mit BefehlsreferenzeintragSCREENRES oder BefehlsreferenzeintragSCREEN initialisiert wurde, so wird in 'param1' und 'param2' der Wert 0 zurückgegeben.
1GET_WINDOW_TITLEGibt den Titel des Programmfensters in 'caption' zurück. Dies funktioniert auch ohne initialisiertem Grafikscreen, wenn der Titel zuvor mit SCREENCONTROL oder WINDOWTITLE gesetzt wurde.
2GET_WINDOW_HANDLEGibt den Handle des aktiven Programmfensters in 'param1' zurück.
Der Handle ist eine Zahl, die das Fenster im System identifiziert. Unter Windows ist dieser Wert ein HWND. Unter X11 stellt es eine "Window"-ID dar.
Wird diese Funktion aufgerufen, bevor ein Grafikfenster mit SCREENRES oder SCREEN initialisiert wurde, so wird in 'param1' der Wert 0 zurückgegeben.
3GET_DESKTOP_SIZEGibt die aktuelle Größe des Desktops in Pixeln an.
'param1' enthält die Breite, 'param2' die Höhe des Desktops. Die Aktion funktioniert auch ohne initialisiertem Grafikfenster.
4GET_SCREEN_SIZEGibt die aktuelle Größe des Grafikfensters in Pixeln an.
'param1' enthält die Breite, 'param2' die Höhe des Grafikfensters.
Wird diese Funktion aufgerufen, bevor ein Grafikfenster mit SCREENRES oder SCREEN initialisiert wurde, so wird in 'param1' und 'param2' der Wert 0 zurückgegeben.
5GET_SCREEN_DEPTHGibt in 'param1' die aktuelle Farbtiefe des Grafikfensters in Bits pro Pixel zurück.
Wird diese Funktion aufgerufen, bevor ein Grafikfenster mit SCREENRES oder SCREEN initialisiert wurde, so wird in 'param1' der Wert 0 zurückgegeben.
6GET_SCREEN_BPPGibt in 'param1' die aktuelle Farbtiefe des Grafikfensters in Byte pro Pixel zurück.
Wird diese Funktion aufgerufen, bevor ein Grafikfenster mit SCREENRES oder SCREEN initialisiert wurde, so wird in 'param1' der Wert 0 zurückgegeben.
7GET_SCREEN_PITCHGibt in 'param1' die Breite einer Bildschirmzeile in Bytes aus; dieser Wert ist das Produkt aus der Breite in Pixeln und der Farbtiefe in Byte pro Pixel.
Wird diese Funktion aufgerufen, bevor ein Grafikfenster mit SCREENRES oder SCREEN initialisiert wurde, so wird in 'param1' der Wert 0 zurückgegeben.
8GET_SCREEN_REFRESHGibt in 'param1' die Bildwiederholrate in Hertz zurück.
Wird diese Funktion aufgerufen, bevor ein Grafikfenster mit SCREENRES oder SCREEN initialisiert wurde, so wird in 'param1' der Wert 0 zurückgegeben.
9GET_DRIVER_NAMEGibt den Namen des aktiven Grafiktreibers in 'caption' zurück.
Wird diese Funktion aufgerufen, bevor ein Grafikfenster mit SCREENRES oder SCREEN initialisiert wurde, so wird in 'caption' ein Leerstring zurückgegeben.
10GET_TRANSPARENT_COLORGibt in 'param1' die aktuelle Maskenfarbe zurück, die von der aktuellen Farbtiefe abhängig ist.
Wird diese Funktion aufgerufen, bevor ein Grafikfenster mit SCREENRES oder SCREEN initialisiert wurde, so wird in 'param1' der Wert 0 zurückgegeben.
11GET_VIEWPORTGibt die Koordinaten des aktuellen Viewports (der Clipping-Regionen, die durch BefehlsreferenzeintragVIEW (Grafik) gesetzt wurden) zurück. Dabei nehmen 'param1' und 'param2' die X- und Y-Koordinate der linken oberen Ecke und 'param3' und 'param4' die X- und Y-Koordinate der rechten unteren Ecke des Viewports auf.
Wird diese Funktion aufgerufen, bevor ein Grafikfenster mit SCREENRES oder SCREEN initialisiert wurde, so wird in den Parametern der Wert 0 zurückgegeben.
12GET_PEN_POSGibt in 'param1' und 'param2' die X- und Y-Koordinate des Grafikcursors in Grafikfensterkoordinaten aus. Diese Koordinaten werden von Grafik-Anweisungen benutzt, die über das BefehlsreferenzeintragSTEP-Schlüsselwort relative Koordinaten unterstützen.
Wird diese Funktion aufgerufen, bevor ein Grafikfenster mit SCREENRES oder SCREEN initialisiert wurde, so wird in 'param1' und 'param2' der Wert 0 zurückgegeben.
13GET_COLORGibt die von BefehlsreferenzeintragCOLOR (Anweisung) festgelegten Farben zurück; 'param1' nimmt die Vordergrundfarbe, 'param2' die Hintergrundfarbe auf.
Wird diese Funktion aufgerufen, bevor ein Grafikfenster mit SCREENRES oder SCREEN initialisiert wurde, so wird in 'param1' und 'param2' der Wert 0 zurückgegeben.
14GET_ALPHA_PRIMITIVESGibt in 'param1' den Wert TRUE (-1) zurück, wenn GFX_ALPHA_PRIMITIVES gesetzt wurde (siehe BefehlsreferenzeintragSCREENRES). Ansonsten wird FALSE (0) zurückgegeben.
15GET_GL_EXTENSIONSGibt in 'caption' einen String zurück, der alle unterstützten GL-Erweiterungen enthält. Wird kein OpenGL-Modus verwendet, dann wird ein leerer String zurückgegeben.
16GET_HIGH_PRIORITYGibt in 'param1' den Wert TRUE (-1) zurück, wenn GFX_HIGH_PRIORITY gesetzt wurde (siehe BefehlsreferenzeintragSCREENRES). Ansonsten wird FALSE (0) zurückgegeben.

Schreiboptionen

WertKonstante in der fbgfx.biBedeutung
100SET_WINDOW_POSLegt die Position des Grafikfensters in Desktopkoordinaten fest; 'param1' und 'param2' sind die neue X- und Y-Koordinate des Grafikfensters relativ zum linken oberen Bildschirmrand.
101SET_WINDOW_TITLEÄndert den Text in der Titelleiste des aktiven Fensters. 'caption' enthält den neuen Titel des Fensters.
Diese Aktion hat dieselbe Auswirkung wie
WINDOWTITLE caption (siehe BefehlsreferenzeintragWINDOWTITLE). Sie kann auch ausgeführt werden, bevor ein Grafikfenster initialisiert wurde.
102SET_PEN_POSBestimmt die Position des Grafikcursors. 'param1' und 'param2' enthalten die neue X- und Y-Koordinate des Grafikcursors.
Diese Koordinaten werden von Grafik-Anweisungen benutzt, die über das Schlüsselwort BefehlsreferenzeintragSTEP relative Koordinaten unterstützen.
103SET_DRIVER_NAME Setzt mit 'caption' den aktiven Grafiktreiber. Die Aktion wirkt sich erst auf das nächste initialisierte Grafikfenster aus.
104SET_ALPHA_PRIMITIVESBestimmt mit 'param1', ob GFX_ALPHA_PRIMITIVES gesetzt sein soll (-1) oder nicht (0) (siehe BefehlsreferenzeintragSCREENRES).
105SET_GL_COLOR_BITSSetzt mit 'param1' die Anzahl der notwendigen Bits für den OpenGL color buffer. Die Aktion kann auch ausgeführt werden, bevor ein Grafikfenster initialisiert wurde.
106SET_GL_COLOR_RED_BITSSetzt mit 'param1' die Anzahl der Bits für die Rot-Komponente des OpenGL color buffer. Die Aktion kann auch ausgeführt werden, bevor ein Grafikfenster initialisiert wurde.
107SET_GL_COLOR_GREEN_BITSSetzt die Anzahl der Bits für die Grün-Komponente des OpenGL color buffer. Die Aktion kann auch ausgeführt werden, bevor ein Grafikfenster initialisiert wurde.
108SET_GL_COLOR_BLUE_BITSSetzt mit 'param1' die Anzahl der Bits für die Blau-Komponente des OpenGL color buffer. Die Aktion kann auch ausgeführt werden, bevor ein Grafikfenster initialisiert wurde.
109SET_GL_COLOR_ALPHA_BITSSetzt mit 'param1' die Anzahl der Bits für die Alpha-Komponente des OpenGL color buffer. Die Aktion kann auch ausgeführt werden, bevor ein Grafikfenster initialisiert wurde.
110SET_GL_DEPTH_BITSSetzt mit 'param1' die Anzahl der notwendigen Bits für den OpenGL depth buffer. Die Aktion kann auch ausgeführt werden, bevor ein Grafikfenster initialisiert wurde.
111SET_GL_STENCIL_BITSSetzt mit 'param1' die Anzahl der notwendigen Bits für den OpenGL stencil buffer. Die Aktion kann auch ausgeführt werden, bevor ein Grafikfenster initialisiert wurde.
112SET_GL_ACCUM_BITSSetzt mit 'param1' die Anzahl der notwendigen Bits für den OpenGL accumulation buffer. Die Aktion kann auch ausgeführt werden, bevor ein Grafikfenster initialisiert wurde.
113SET_GL_ACCUM_RED_BITSSetzt mit 'param1' die Anzahl der Bits für die Rot-Komponente des OpenGL accumulation buffer. Die Aktion kann auch ausgeführt werden, bevor ein Grafikfenster initialisiert wurde.
114SET_GL_ACCUM_GREEN_BITSSetzt mit 'param1' die Anzahl der Bits für die Grün-Komponente des OpenGL accumulation buffer. Die Aktion kann auch ausgeführt werden, bevor ein Grafikfenster initialisiert wurde.
115SET_GL_ACCUM_BLUE_BITSSetzt mit 'param1' die Anzahl der Bits für die Blau-Komponente des OpenGL accumulation buffer. Die Aktion kann auch ausgeführt werden, bevor ein Grafikfenster initialisiert wurde.
116SET_GL_ACCUM_ALPHA_BITSSetzt mit 'param1' die Anzahl der Bits für die Alpha-Komponente des OpenGL accumulation buffer. Die Aktion kann auch ausgeführt werden, bevor ein Grafikfenster initialisiert wurde.
117SET_GL_NUM_SAMPLESSetzt mit 'param1' die Anzahl der Samples, die von OpenGL Multisampling genutzt werden sollen. Die Aktion kann auch ausgeführt werden, bevor ein Grafikfenster initialisiert wurde.

Weitere Optionen

WertKonstante in der fbgfx.biBedeutung
200POLL_EVENTSAlle Ereignisse (Events) wie Tasten- oder Mausbetätigung werden abgefragt. Nützlich in OpenGL-Programmen, wenn BefehlsreferenzeintragFLIP nicht verwendet wird, da die FLIP-Anweisung diese Abfragen veranlasst.

Beispiel:
Es wird ein transparentes Fenster mit einem Schriftzug erzeugt. Bei einem Mausklick auf den Schriftzug kann das Fenster (samt Inhalt) verschoben werden.

#INCLUDE "fbgfx.bi"
USING FB

DIM AS EVENT e
DIM AS INTEGER x, y, pressed, col
DIM AS ANY PTR img

' Splashscreen (durchsichtiges Fenster) erzeugen
SCREENRES 384, 64, 32,, GFX_SHAPED_WINDOW

img = IMAGECREATE(48, 8)
' graphischen Schriftzug erzeugen
DRAW STRING img, (0, 0), "GfxLib"
FOR y = 0 TO 63
  FOR x = 0 TO 383
    col = POINT(x \ 8, y \ 8, img)
    IF (col <> RGB(255, 0, 255)) THEN
      col = RGB((x + y) AND &hFF, (x + y) AND &hFF, _
         (x + y) AND &hFF)
    END IF
    PSET (x, y), col
  NEXT x
NEXT y

pressed = 0
DO
  IF SCREENEVENT(@e) THEN
    SELECT CASE e.type
    CASE EVENT_MOUSE_BUTTON_PRESS
      ' Druck der Maustaste merken
      pressed = -1
    CASE EVENT_MOUSE_BUTTON_RELEASE
      ' Loslassen der Maustaste merken
      pressed = 0
    CASE EVENT_MOUSE_MOVE
      IF pressed THEN
        ' Fenster verschieben
        SCREENCONTROL GET_WINDOW_POS, x, y
        SCREENCONTROL SET_WINDOW_POS, x + e.dx, y + e.dy
      END IF
    END SELECT
  END IF
  SLEEP 5
LOOP WHILE NOT MULTIKEY(1) ' Ende bei Druck der ESC-Taste

Unterschiede zu QB: neu in FreeBASIC

Unterschiede zu früheren Versionen von FreeBASIC:

Unterschiede unter den FB-Dialektformen:
In der Dialektform Befehlsreferenzeintrag-lang qb steht SCREENCONTROL nicht zur Verfügung und kann nur über __SCREENCONTROL aufgerufen werden.

Siehe auch:
BefehlsreferenzeintragSCREENRES, BefehlsreferenzeintragSCREENINFO, BefehlsreferenzeintragSCREENEVENT, BefehlsreferenzeintragWINDOWTITLE, BefehlsreferenzeintragVIEW (Grafik), BefehlsreferenzeintragGrafik


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 31.07.2007 von Redakteurnemored angelegt.
  • Die aktuellste Version wurde am 20.10.2012 von Redakteurnemored gespeichert.
  Versionen Versionen