JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=a3204275cad8d223f578a1c4dba4b1b2Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Richtige Fullscreen Anwendungen

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
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

BeitragVerfasst am: 04.04.2004, 15:18    Titel: Richtige Fullscreen Anwendungen Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
abc_d
JLI Master Trainee


Alter: 34
Anmeldedatum: 27.01.2003
Beiträge: 615

Medaillen: Keine

BeitragVerfasst am: 04.04.2004, 15:30    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 04.04.2004, 16:29    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
HotAcid
Super JLI'ler


Alter: 43
Anmeldedatum: 04.08.2002
Beiträge: 372
Wohnort: Berlin
Medaillen: Keine

BeitragVerfasst am: 04.04.2004, 16:31    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
abc_d
JLI Master Trainee


Alter: 34
Anmeldedatum: 27.01.2003
Beiträge: 615

Medaillen: Keine

BeitragVerfasst am: 04.04.2004, 16:42    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Sec
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88

Medaillen: Keine

BeitragVerfasst am: 04.04.2004, 16:56    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
=]Mid[=]Night[=
Super JLI'ler



Anmeldedatum: 20.11.2002
Beiträge: 380
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 04.04.2004, 17:53    Titel: Antworten mit Zitat

statt WS_OVERLAPPEDWINDOW WS_POPUP angeben, dann hat das Fenster keinen Rahmen mehr!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Zyrian
Super JLI'ler



Anmeldedatum: 30.08.2003
Beiträge: 321
Wohnort: Essen
Medaillen: Keine

BeitragVerfasst am: 04.04.2004, 18:47    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 04.04.2004, 19:43    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 04.04.2004, 21:00    Titel: Antworten mit Zitat

Danke, jetzt gehts
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum