Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 04.04.2004, 15:18 Titel: Richtige Fullscreen Anwendungen |
|
|
Wie kann man eigentlich die Funktionen des Fensters ausschalten?
Wenn ich eine Fullscreenanwendung wie im Buch beschrieben mache, und dann den Mauscursor ausblende funktioniert das soweit ganz gut.
Wenn ich jetzt aber die Maus ganz nach links bewege wird der Cursor plötzlich wieder angezeigt. Wenn ich z. B. links oben in die Ecke gehe, sehe ich die Pfeile zum ändern der Größe eines Fensters.
Der Fenstertiel und die obere Leiste wird ja im Prinzip nur ausgeblendet, und das Fenster so groß wie der Bildschrim gemacht. Aber mit der Maus kann ich trotzdem das Fenster verkelienre oder verschieben.
Gibt es eine Möglichkeit das ganz auszuschalten?
Ich benutze DirectInput für meinen Cursor, aber trotzdem taucht der Windowscursor manchmal auf(siehe oben)
Wie kann ich also nun eine "richtige" Fullscreenanwednugn schreiben.
Gibt es irgendeien Befehl um die Funktionalitt des Fensters abzuschalten (ähnlich wie ShowCursor(false))? _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
abc_d JLI Master Trainee
Alter: 34 Anmeldedatum: 27.01.2003 Beiträge: 615
Medaillen: Keine
|
Verfasst am: 04.04.2004, 15:30 Titel: |
|
|
Du must das Fenster so machen, das es nur ein rechteck ohne Rahmen ist. Schau dir dazu die Parameter beim erstellen des Fensters an. _________________ http://mitglied.lycos.de/sarti/linuxisevil.gif Linux is evil - get the fact.
Never touch a running System - der Systemling |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 04.04.2004, 16:29 Titel: |
|
|
Code: | WNDCLASSEX wndClass =
{
sizeof(WNDCLASSEX), // Größe angeben
CS_DBLCLKS | CS_OWNDC | CS_HREDRAW | CS_VREDRAW, // Standardstile
MessageHandler, // Callback-Funktion
0, // Zusätzliche Angaben
0, // nicht benötigt
hInstance, // Anwendungsinstanz
LoadIcon(NULL, IDI_WINLOGO), // Windows-Logo
LoadCursor(NULL, IDC_ARROW), // Normaler Cursor
(HBRUSH)GetStockObject(WHITE_BRUSH), // Weißer Pinsel
NULL, // kein Menü
"WindowClass", // Der Name der Klasse
LoadIcon(NULL, IDI_WINLOGO) // Windows Logo
};
RegisterClassEx(&wndClass);
return CreateWindowEx(NULL, // Keine erweiterten Stile nutzen
"WindowClass", // Klassenname
"DX9 Game", // Fenstertitel
WS_OVERLAPPEDWINDOW | // Fenster
WS_VISIBLE, // Eigenschaften
0, 0, SCR_WIDTH, SCR_HEIGHT, // Anfangsposition und Größe
NULL, // Handle des Elternfensters
NULL, // Handle des Menüs
hInstance, // Anwendungsinstanz
NULL); |
OK, was muss ich ändern? _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
HotAcid Super JLI'ler
Alter: 43 Anmeldedatum: 04.08.2002 Beiträge: 372 Wohnort: Berlin Medaillen: Keine
|
Verfasst am: 04.04.2004, 16:31 Titel: |
|
|
Ich schätze mal, das hat was mit den Angaben CS_xxx oder WS_xxx zu tun, sieh doch mal in die MSDN
cu Felix _________________ StGB §§ 328 Abs. 2 Pkt 3:
Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht. |
|
Nach oben |
|
|
abc_d JLI Master Trainee
Alter: 34 Anmeldedatum: 27.01.2003 Beiträge: 615
Medaillen: Keine
|
Verfasst am: 04.04.2004, 16:42 Titel: |
|
|
Das Parameter, das WS_OVERLAPPEDWINDOW | WS_VISIBLE entählt ist es AFAIK. Schau mal in der MSDN nach. _________________ http://mitglied.lycos.de/sarti/linuxisevil.gif Linux is evil - get the fact.
Never touch a running System - der Systemling |
|
Nach oben |
|
|
Sec Junior JLI'ler
Anmeldedatum: 18.09.2002 Beiträge: 88
Medaillen: Keine
|
Verfasst am: 04.04.2004, 16:56 Titel: |
|
|
Wenn du dein Prog mit DirectInput machst must du nur die SetCooperativeLevel für die Tastatur und Maus ändern
Code: |
//Keyboard
if(FAILED(m_KeyboardDevice->SetCooperativeLevel(m_WindowClass->GetHWnd(), DISCL_FOREGROUND | DISCL_EXCLUSIVE)))
{
return -1;
}
//Mouse
if(FAILED(m_MouseDevice->SetCooperativeLevel(m_WindowClass->GetHWnd(), DISCL_FOREGROUND | DISCL_EXCLUSIVE)))
{
return -1;
}
|
_________________ MFG Sec |
|
Nach oben |
|
|
=]Mid[=]Night[= Super JLI'ler
Anmeldedatum: 20.11.2002 Beiträge: 380 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 04.04.2004, 17:53 Titel: |
|
|
statt WS_OVERLAPPEDWINDOW WS_POPUP angeben, dann hat das Fenster keinen Rahmen mehr! |
|
Nach oben |
|
|
Zyrian Super JLI'ler
Anmeldedatum: 30.08.2003 Beiträge: 321 Wohnort: Essen Medaillen: Keine
|
Verfasst am: 04.04.2004, 18:47 Titel: |
|
|
jop. WS_OVERLAPPEDWINDOW sorgt für die Titelleiste und die drei Buttons zum Schliessen, Maximieren und Minimieren, was halt auch den skalierbaren Rand vom Fenster beinhaltet.
mfg _________________ Schau mir in die Augen, Kleines. |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 04.04.2004, 19:43 Titel: |
|
|
Code: |
....
if(PParams.Windowed)
{
RECT r;
GetClientRect(hWnd,&r);
PParams.BackBufferWidth = r.right;
PParams.BackBufferHeight = r.bottom;
}
else
{
PParams.BackBufferWidth = Width;
PParams.BackBufferHeight = Height;
PParams.FullScreen_RefreshRateInHz = RefreshRate;
int i = GetWindowLong(hWnd,GWL_STYLE);
i &= ~WS_CAPTION;
SetWindowLong(hWnd,GWL_STYLE,i);
}
....
|
|
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
|
Nach oben |
|
|
|