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

real76Betreff: Graphics 800,600... Aber wie Fenster zentrieren? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
garnicht ohne windows api | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
real76 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Schade... Dann halt per WinAPI.
Gibt's auch auf Linux und MacOS eine Möglichkeit über die API? |
||
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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. ![]() |
||
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Kann man schon, aber dann blinkt das Fenster kurz an der falschen Stelle auf. Ist nicht so schön. ![]() |
||
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() Und warum gibt es diese Parameter ? Graphics:TGraphics( width,height,depth=0,hertz=60,flags=0 ) ... |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group