|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
RayJunx JLI'ler
Alter: 43 Anmeldedatum: 16.01.2006 Beiträge: 130 Wohnort: Bayern Medaillen: Keine
|
Verfasst am: 06.04.2006, 18:07 Titel: Vollbildmodus stürzt bei Randklick ab |
|
|
Hi,
habe folgendes Problem:
Wenn ich mein Programm im Vollbildmodus starte funktioniert das zwar tadellos aber die windowsfenster funktionen scheinen noch nicht unterbunden zu sein. so kann ich an den rand klicken und auf einmal die fenstergröße verändern, kann auch sein das das prog dann ganz auf den normalen windows desktop umspringt. danach habe ich keine change mehr ins prog zurück zu kommen, oder sehe dann nur schwarz bzw weiß.
Möchte irgendwie erreichen das mein prog wirklich exklusive im
vollbildmodus läuft ganz gleich was ich mit der maus anstelle.
Ihr versteht sicher was ich meine. wie kann ich das erreichen? gibt
denke ich einen simplen parameter den ich nur noch zu übergeben habe.
verwende folgenden aufbau:
wahrscheinlich ist der parameter bereits irgendwo falsch deklariert,
bin für jeden tip dankbar. könnt das ja auch selber recht einfach
mit jedem blankoprogramm austesten
Code: |
HWND CreateMainWindow(HINSTANCE hInstance) // Fenster erzeugen
{
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); // Klasse registrieren
return CreateWindowEx(NULL, // Keine erweiterten Stile nutzen
"WindowClass", // Klassenname
"M.Geiger´s FREAKWAVE", // Fenstertitel
WS_OVERLAPPEDWINDOW | // Fenster
WS_VISIBLE, // Eigenschaften
0, 0, // Anfangsposition
SCREENX, SCREENY, // und Größe des Fensters
NULL, // Handle des Elternfensters
NULL, // Handle des Menüs
hInstance, // Anwendungsinstanz
NULL); // wird nicht benötigt
}
............................
BOOL CDirect3D::Init(HWND hWnd, BOOL bWindowed) // Direct 3D initialisieren
{
m_D3D = Direct3DCreate9(D3D_SDK_VERSION); // Direct3D-Objekt erzeugen
D3DPRESENT_PARAMETERS PParams; // Parameter für den Modus festlegen
ZeroMemory(&PParams,sizeof(PParams));
PParams.SwapEffect = D3DSWAPEFFECT_DISCARD;
PParams.hDeviceWindow = hWnd;
PParams.Windowed = bWindowed;//TRUE;//bWindowed; // Hier umschalten Zwischen Vollbild oder Fenster
PParams.BackBufferWidth = SCREENX;
PParams.BackBufferHeight = SCREENY;
PParams.BackBufferFormat = D3DFMT_A8R8G8B8;
HRESULT hr;
if(FAILED(hr = m_D3D->CreateDevice( // Direct3D-Gerät anlegen
D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
hWnd,
D3DCREATE_HARDWARE_VERTEXPROCESSING,//D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&PParams,
&m_3DDevice)))
{
// Fehler !
}
CreateFont(); // Schrift erzeugen
// Zeiger auf dem Hintergrundpuffer holen
m_3DDevice->GetBackBuffer(0,0,D3DBACKBUFFER_TYPE_MONO, &m_BackBuffer);
return TRUE;
}
|
_________________ Just a Freak |
|
Nach oben |
|
|
51m0n JLI'ler
Alter: 33 Anmeldedatum: 06.01.2006 Beiträge: 167 Wohnort: Erkelenz Medaillen: Keine
|
Verfasst am: 06.04.2006, 18:11 Titel: |
|
|
Hallo
Bei einer Vollbild-Anwendung würde ich den Windowsstyle auf WS_POPUP stellen:
CPP: | return CreateWindowEx(NULL, // Keine erweiterten Stile nutzen
"WindowClass", // Klassenname
"M.Geiger´s FREAKWAVE", // Fenstertitel
WS_POPUP,
0, 0, // Anfangsposition
SCREENX, SCREENY, // und Größe des Fensters
NULL, // Handle des Elternfensters
NULL, // Handle des Menüs
hInstance, // Anwendungsinstanz
NULL); |
MfG 51m0n _________________ Teigwaren
heißen Teigwaren,
weil sie früher einmal Teig waren |
|
Nach oben |
|
|
RayJunx JLI'ler
Alter: 43 Anmeldedatum: 16.01.2006 Beiträge: 130 Wohnort: Bayern Medaillen: Keine
|
Verfasst am: 06.04.2006, 18:26 Titel: vielen dank! |
|
|
bin immer wieder positiv überrascht wie schnell man hier geholfen wird
jetzt funktioniert mein vollbildmodi genauso wie ich mir vorgestellt habe.
egal wohin ich klicke. vielen dank!
grüße,
Rayjunx _________________ Just a Freak |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 07.04.2006, 14:09 Titel: |
|
|
Aber weisst du denn nun auch weshalb er abschmiert? _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
RayJunx JLI'ler
Alter: 43 Anmeldedatum: 16.01.2006 Beiträge: 130 Wohnort: Bayern Medaillen: Keine
|
Verfasst am: 07.04.2006, 14:27 Titel: tut er nicht mehr |
|
|
tut er jetzt auch nicht mehr, insofern ich nur einen bildschirm aktiv habe,
früher oder wenn ich den zweiten bildschirm nicht deaktiviert habe, geht er aus dem programm sobald ich daneben klicke. es läuft dann auch stabil weiter aber die grafikdarstellung fährt nicht mehr hoch wenn ich es wieder aktiv mache. irgend ein direct x problem vielleicht, aber juckt mich jetzt ja nicht mehr, das programm bleibt tuschur im vollbildmodus bis es beendet wird, so soll es ja auch sein.
grüße und danke nochmal
rayjunx _________________ Just a Freak |
|
Nach oben |
|
|
51m0n JLI'ler
Alter: 33 Anmeldedatum: 06.01.2006 Beiträge: 167 Wohnort: Erkelenz Medaillen: Keine
|
Verfasst am: 07.04.2006, 14:38 Titel: |
|
|
Sowas nennt man DeviceLost
Das ist genau das gleiche wie das berüchtigte Alt+Tab Problem, du solltest es also trotzdem beheben. Falls du mit DirectDraw arbeitest solltest du dich ma auf www.germangamedev.de umschauen da gibts ein Tutorial dazu _________________ Teigwaren
heißen Teigwaren,
weil sie früher einmal Teig waren |
|
Nach oben |
|
|
|
|
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
|