Wann wird WindowProc betreten?
-
Hallo,
ich hab ein seltsames Verhalten in meinem WinApi Programm.
So erzeuge eich ein Fenster:windowHandle = CreateWindow("testWindow", title, WS_VISIBLE | WS_OVERLAPPEDWINDOW, windowLeft, windowTop, windowWidth, windowHeight, NULL, NULL, GetModuleHandle(NULL), this); Foo f; f.bar();Nach CreateWindow() rufe ich f.bar() auf. Diese Methode muss unbedingt vor Betreten der Nachrichtnschleife ausgeführt werden!
Was ich absolut nicht raffe: Obwohl die Nachrichten Schleife erst zu einem späteren Zeitpunkt betreten wird (sie sieht übrigens so aus:
while(true) { if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { if(msg.message == WM_QUIT) break; TranslateMessage(&msg); DispatchMessage(&msg); } }), wird offenbar die WindowProc (genau gesagt springt er an diese Stelle:
case SIZE_RESTORED: // usw. break;betreten, bevor f.bar() aufgerufen wird. Wie kann das sein??

-
Oh man, das sind allesamt Basics, welche zu hauft zu finden sind, lern bitte suchen...
Wenn CreateWindow[Ex]() aufgerufen wird, sendet Windows schon einige Messages zur WndProc, u.a. WM_CREATE, um halt vorm erschafen Ereignisse auszulösen, erst dann liefert CreateWindow[Ex] das Handle zurück und geht dort im Programmcode weiter.
-
Sofern du nicht gerade nen Game oder sowas basteln willst eignet sich GetMessage() übrigens besser als PeekMessage():
Da PeekMessage() im Gegensatz zu GetMessage() nicht auf ne Nachricht wartet, pollst du hier sonst wie blöde rum und verschwendest Rechenzeit die andere Prozesse unter Umständen gut brauchen könnten
-
Ich schreib nen Spiel^^
-
eulentier schrieb:
Ich schreib nen Spiel^^
Ich dreh am Rad, stellt fragen über die Basics der Basics und will nen Spiel schreiben, trolliger gehts nimmer.
-
orr lol schrieb:
eulentier schrieb:
Ich schreib nen Spiel^^
Ich dreh am Rad, stellt fragen über die Basics der Basics und will nen Spiel schreiben, trolliger gehts nimmer.
Offenbar verstehst du kleines Bubi nicht, dass man für nen Spiel Ahnung von Mathe/Shadern und DirectX haben muss, aber nicht von der WinApi. Da kopiert man sich einmal den Init Code zusammen und dann fertig.

-
eulentier schrieb:
orr lol schrieb:
eulentier schrieb:
Ich schreib nen Spiel^^
Ich dreh am Rad, stellt fragen über die Basics der Basics und will nen Spiel schreiben, trolliger gehts nimmer.
Offenbar verstehst du kleines Bubi nicht, dass man für nen Spiel Ahnung von Mathe/Shadern und DirectX haben muss, aber nicht von der WinApi. Da kopiert man sich einmal den Init Code zusammen und dann fertig.

Um nen Spiel für Windows zu programmieren brauch man aber Ahnung von der WinAPI, beim kopieren kommen halt solche Threads hier raus... :p

-
gosha16 schrieb:
Um nen Spiel für Windows zu programmieren brauch man aber Ahnung von der WinAPI
-
eulentier schrieb:
Offenbar verstehst du kleines Bubi nicht, dass man für nen Spiel Ahnung von Mathe/Shadern und DirectX haben muss, aber nicht von der WinApi. Da kopiert man sich einmal den Init Code zusammen und dann fertig.

Danke für die Blumen, nur denke ich mal das ich mind. 20 jahre älter bin wie du (i->35), Und nein, wenn man Spiele Programmiert für ein System muß und sollte man sich mit den Grundaufbau dessen auskennen. Wenn du mal Moorhuhn spielst, kannst du dich an mich, dem orr lolie erinnern, ich saß mal täglich in einem Gebäude in Wattenscheid und habe dort Kaffee getrunken, war ein reines Phenomän.
PS: Regel Nr.1: Programmierer programmieren und nicht kopieren!