Graphics 800,600... Aber wie Fenster zentrieren?

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

real76

Betreff: Graphics 800,600... Aber wie Fenster zentrieren?

BeitragDi, Feb 26, 2008 23:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Titel sagt eigentlich schon alles: Wie kann ich ein mittels Graphics erzeugtes Fenster auf dem Bildschirm zentrieren.

Sorry, ich komme mit der Online-Hilfe in BM noch nicht wirklich klar.

Grüße
René
 

Dreamora

BeitragDi, Feb 26, 2008 23:57
Antworten mit Zitat
Benutzer-Profile anzeigen
garnicht ohne windows api
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

real76

BeitragMi, Feb 27, 2008 11:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Schade... Dann halt per WinAPI.

Gibt's auch auf Linux und MacOS eine Möglichkeit über die API?
 

ChristianK

BeitragMi, Feb 27, 2008 14:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Dazu musst du die entsprechenden Module ein bisschen umschreiben.

Für das OpenGL-Modul

In der Datei glgraphics.win32.c suchen und diese Zeilen

Code: [AUSKLAPPEN]
hwnd=CreateWindowEx(
   0,CLASS_NAME,_appTitle(),
   hwnd_style,rect.left,rect.top,rect.right-rect.left,rect.bottom-rect.top,0,0,GetModuleHandle(0),0 );

so ändern:

Code: [AUSKLAPPEN]
   int win_width = rect.right - rect.left;
   int win_height = rect.bottom - rect.top;

   hwnd = CreateWindowEx( 0, CLASS_NAME, _appTitle( ), hwnd_style,
      GetSystemMetrics( SM_CXSCREEN ) / 2 - win_width / 2,
      GetSystemMetrics( SM_CYSCREEN ) / 2 - win_height / 2,
      win_width, win_height,
      0, 0, GetModuleHandle( 0 ), 0 );



Für das DirectX 7-Modul

In d3d7graphics.bmx diese Zeile

Code: [AUSKLAPPEN]
hwnd=CreateWindowExA( 0,_wndClass,title,style,rect[0],rect[1],rect[2]-rect[0],rect[3]-rect[1],0,0,hinst,Null )

so ändern:

Code: [AUSKLAPPEN]
         Local win_width:Int = rect[2] - rect[0]
         Local win_height:Int = rect[3] - rect[1]
         
         Extern "Win32"
            Function GetSystemMetrics:Int( index:Int )
         End Extern
         
         hwnd=CreateWindowExA( 0,_wndClass,title,style,GetSystemMetrics( 0 )/2-win_width/2,GetSystemMetrics( 1 )/2-win_height/2,win_width,win_height,0,0,hinst,Null )


Für Linux und Mac gibt es natürlich auch eine Möglichkeit, aber die kenn ich nicht. Smile
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
 

Dreamora

BeitragMi, Feb 27, 2008 16:13
Antworten mit Zitat
Benutzer-Profile anzeigen
dazu muss man die generierung net zwingend umschreiben. man kann es mit der positionierungsfunktion auch nach der erzeugung positionieren.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

ChristianK

BeitragMi, Feb 27, 2008 17:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Kann man schon, aber dann blinkt das Fenster kurz an der falschen Stelle auf. Ist nicht so schön. Smile
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT

Markus2

BeitragDo, Feb 28, 2008 13:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich meine mit dem BMaxGUI kann man die Desktop Auflösung auch
heraus finden .
Die Fenster die man mit Graphics erzeugt sind eigentlich für FullScreen gedacht .
 

Dreamora

BeitragDo, Feb 28, 2008 14:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Nö, sonst gäbe es keinen Fenster Modus und nicht so viele User würden den fenstermodus vorziehen damit die kommunikation mit freunden wegen nem "kleinen spiel" net vollends einbricht.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Markus2

BeitragDo, Feb 28, 2008 20:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit MaxGUI
,ClientWidth(Desktop())/2-400,ClientHeight(Desktop())/2-300,800,600

Ich glaube eher der Fenstermodus ist dafür da das man den Debugger sieht Wink

Und warum gibt es diese Parameter ?
Graphics:TGraphics( width,height,depth=0,hertz=60,flags=0 )

...

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group