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
Nö klappt nicht!Zitat
Klappts denn?
Klappt auch nicht.Zitat
vergiß WinMain, da hast du eben normalerweise kein Konsolenfenster. mach ne konsolenanwendung (ganz normale int main) aber mach den rest so, dann müsste es klappen.
Zitat von »"PCShadow"«
Überprüfe mal, ob die Nachrichten nicht ankommen (logfile-einträge in der WndProc). falls ja, klappts aus irgendeinem Grund nicht, ne nachrichtenschleife fürs Konsolenfenster zu bauen. Falls nein, hast du irgendwo bei der änderung der position des x oder dem Zeichnen desselbigen einen Fehler.
Zitat von »"David_pb"«
Woher soll denn das Konsolenfenster wissen das er genau in seinem Msg-Handler die Nachrichten verarbeiten will? :shock:
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
void KeyboardEventHandler( KEY_EVENT_RECORD rec ) { if ( rec.bKeyDown ) printf( "key pressed => %d\n", rec.wVirtualKeyCode ); else printf( "key released => %d\n", rec.wVirtualKeyCode ); } void MouseEventHandler( MOUSE_EVENT_RECORD rec ) { if ( rec.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED ) printf( "Clicked at %dx%d\n", rec.dwMousePosition.X, rec.dwMousePosition.Y ); } int main() { DWORD numEvents; INPUT_RECORD inputBuffer[0x7f]; HANDLE hConsole = GetStdHandle( STD_INPUT_HANDLE ); while ( true ) { GetNumberOfConsoleInputEvents( hConsole, &numEvents ); if ( numEvents > 0 ) { ReadConsoleInput( hConsole, inputBuffer, sizeof( inputBuffer ) / sizeof( 0[ inputBuffer ] ), &numEvents ); for ( int i = 0; i < numEvents; ++i ) { PINPUT_RECORD pRec = &inputBuffer[i]; switch ( pRec->EventType ) { case KEY_EVENT: KeyboardEventHandler( pRec->Event.KeyEvent ); break; case MOUSE_EVENT: MouseEventHandler( pRec->Event.MouseEvent ); break; } } } } } |
Werbeanzeige