Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

10.08.2009, 22:04

also ich komme in der Sache nicht weiter... Das muss doch lösbar sein!
Liegt es vielleicht an den Fenstereigenschaften?(DWORD style = WS_VISIBLE | WS_OVERLAPPED| WS_EX_TOPMOST| WS_POPUPWINDOW |WS_CAPTION|WS_DLGFRAME);

Aber auch das bezweifel ich ...

Vorallem ist es ja nicht nur das Dauergebeepe nach 0.5 Sekunden Tastendruck, sondern auch ein einziger Druck endet ja schon in einem Beep

naja :(


Bisher jedenfalls danke
kickerxy

12

10.08.2009, 22:33

Nimm WS_OVERLAPPED resp. WS_OVERLAPPEDWINDOW für Fensteranwendungen und WS_POPUP für Fullscreen.

Fang doch einfach ein neues Projekt an, und schaufel nach und nach alles rüber!?
fka tm

Gotbread

Alter Hase

Beiträge: 421

Beruf: Student (Etechnik) + Hiwi

  • Private Nachricht senden

13

10.08.2009, 22:44

nur so nebenbei

solltest du nicht den rückgabewert von Acquire() in "r" speichern?
Mfg Goti
www.gotbread.bplaced.net
viele tolle spiele kostenlos, viele hardware-basteleien :)

"Es ist nicht undicht, es läuft über" - Homer Simpson

14

11.08.2009, 01:29

so... finally =) nach 3 Stunden hab ich den Kern des Problems!
Ich weiß nur immer noch nicht ganz exakt WARUM es so nicht geht ;)

er macht Probleme, wenn ich DirectX auf das vorhandene Fenster initialisiere (was zuvor dem Hauptmenü entsprach). Wenn ich ein neues "Gaming"- Fenster erstelle, scheint das Problem nicht vorzukommen!

Tja... woran liegts :?

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//Nach Button "Spielstart:

HWND hwnd_gamemenu;
     hwnd_gamemenu = CreateWindowEx(0, WC_DIALOG, "Spielmenü", WS_VISIBLE | WS_OVERLAPPEDWINDOW, 0, 0, 300, 300, NULL, NULL, NULL, NULL); 
                SetWindowLong(hwnd_gamemenu, DWL_DLGPROC, (long)Proz2); 

  
   setDx_and_initialise(hwnd_gamemenu,200,200);
  // hideAllButtons (TRUE);


pD3DDevice = get_device();
if(FAILED(pD3DDevice->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,63),1.0f,0)))
{
         MessageBox(NULL, "Fehler beim Leeren des Bildpuffers oder Z-Puffers. Stop.",
         "Fehler",MB_OK|MB_ICONEXCLAMATION);
         writeToLog("Fehler beim Leeren des Bildpuffers oder Z-Puffers. Stop.",TRUE,0);
         return -1;              
}
if(FAILED(pD3DDevice->SetFVF(D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX1)))
{
         MessageBox(NULL, "Ungültiges Vertexformat!",
         "Fehler",MB_OK|MB_ICONEXCLAMATION);
         writeToLog("Ungültiges Vertexformat!",TRUE,0);
         return -1;   
}
pD3DDevice->SetRenderState(D3DRS_LIGHTING, FALSE);
pD3DDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
pD3DDevice->SetRenderState(D3DRS_DITHERENABLE, TRUE);
GS = GS_GAME;

So gehts!
Aber mit

C-/C++-Quelltext

1
setDx_and_initialise(hwnd,200,200);
nicht!


Hm doch nicht :/ Zwar kommt kein "Beep" mehr, aber meine Figur bewegt sich beim Dauerdrücken einer Taste nur die ersten 0,5 Sekunden und ignoriert danach den Tastendruck :(

15

11.08.2009, 23:05

Okay, ich hab nen neues (geordneteres) Projekt angefangen!

Jetzt gehts!
Nur hab ich ein neues Problem...


#edit hm ne ich schlaf noch ne nacht drüber ;=)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

16

11.08.2009, 23:25

Zitat von »"kickerxy123"«


Jetzt gehts!
Nur hab ich ein neues Problem...


#edit hm ne ich schlaf noch ne nacht drüber ;=)


lol, das Posting des Jahres, definitiv ^^

17

11.08.2009, 23:36

edit: DEFINITIV zu spät -.-

habs hinbekommen!

so ein blöder Fehler... naja morgen gibts bestimmt noch mehr, dann meld ich mich wieder;)

18

12.08.2009, 15:22

Okay, jetzt trat mein Ping Geräusche Problem wieder auf! und zwar dann, wenn ich diese Funktion hier benutze:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
void hideAllButtons (bool state)
{
     if (state == TRUE || state == true) state = FALSE;
     else state = TRUE;
     for(int i = 0; i < hArr_counter; i++)
     {
             EnableWindow(hArr[i],state);
             ShowWindow(hArr[i], state);
     }
}

Ich habe also zuvor alle erstellten Buttons,Labels,etc. in das Array hArr[] gepackt und will diese nun mit

C-/C++-Quelltext

1
hideAllButtons(true)
verstecken, wenn ich im Menü auf Spielstart klicke!
Tja wie gesagt, mache ich dies so, dann kommt es zu den Beeps.
Weiß einer warum?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

19

12.08.2009, 15:44

Also irgendwie würds mich schon wundern wenn das an ShowWindow liegen würd, ich denke dein Problem ist wo anders zu suchen (Piepsts auch wenn du das EnableWindow() da mal weglässt?).

Eines kann ich dir aber mit Sicherheit sagen: TRUE ist kein Wert für einen bool und ShowWindow() erwartet auch keinen bool sondern was andres:
http://msdn.microsoft.com/en-us/library/ms633548.aspx

C-/C++-Quelltext

1
2
3
4
5
6
7
8
void hideAllButtons (bool state) 
{
  for(int i = 0; i < hArr_counter; i++)
  {
    EnableWindow(hArr[i], state ? FALSE : TRUE);
    ShowWindow(hArr[i], state ? SW_HIDE : SW_SHOW);
  }
}

20

12.08.2009, 16:01

ah okay, das mit ShowWindow() hab ich nicht gewusst, zumal es auch mit true : false geht ..

Also wenn ich EnableWindow() weglasse, dann piepts nicht!

Es reicht ja wenn die Buttons,etc. nicht angezeigt werden, also werd ich das so lassen können =)

Aber seltsam ist das schon ... gibt es da eine Erklärung für?
Ansonsten ists auch egal, Hauptsache so geht es!

Vielen Dank!
Ich melde mich bestimmt wieder mit neuen Problemen ;)
aber dieser Thread kann jetzt geschlossen werden

mfg
kickerxy

Werbeanzeige