tastatur ereignisse



  • hi,

    ich bastle an einem opengl programm und habe jetzt nen verständlis problem mit der tastatur abfrage

    case WM_KEYDOWN:
    	if ((wParam >= 0) && (wParam <= 255))
    	{
    		keyDown [wParam] = TRUE;
    		isDown = TRUE;
    		return 0;							
    	}
    break;										
    
    case WM_KEYUP:								
    	if ((wParam >= 0) && (wParam <= 255))	
    	{
    		keyDown [wParam] = FALSE;
    		isDown = FALSE;
    		return 0;								
    	}
    break;
    

    jetzt kann ich mit keyDown[VK_F1] oder keyDown['A'] die tasten abfragen und darauf reagieren .. schön und gut aber ich brauchs doch anders ...
    so kann ich nicht nach keyDown['a'] dem kleinen 'a' fragen .. schonmal mist ^^

    ich habe oben versucht abzufragen:
    f ((wParam>=32) && (wParam<=122) // "space" taste bis "z" im ascii bereich
    aber irgendwie wollte das nicht .. ist wParam nicht der index in der ascii tabelle?

    also ich will normale zeichen abfragen die man als text darstellen kann.
    momentan probiere ich, wenn ich einen buchstaben oder zahl drücke, das diese dargstellt werden ..

    ich will praktisch ein *char zeichen bekommen und das an meine Display(char &zeichen) weitergeben und darstellen.

    irgendwie vermurkst beschrieben aber mein kopf dröhnt schon ^^
    kann irgendwer bitte helfen?

    danke!



  • ich habe mir jetzt eine hilfsfunktion geschrieben, so nach dem motto:

    if (keys->keyDown['A']) return 'a';
    

    jedoch kann ich von den virtual-key codes nur das ',' vom NUMPAD abfragen, gleiches gilt für '-' '+' etc etc etc wie komme ich denn jetzt an das ',' auf der linken seite? und wie an '+' '(' etc etc etc ??

    help me 🤡



  • zum test, weil ich ja dachte das WM_CHAR die lösung wäre.

    case WM_CHAR:
    		keyCode[0] = 'c';//(TCHAR)wParam;
    		keyCode[1] = 0x00;
    break;
    

    bei WM_CHAR bekomme ich scheinbar nicht rein .. da das 'c' niemals angezeigt wird.

    case WM_KEYDOWN:
    		keyCode[0] = 'c';
    		keyCode[1] = 0x00;
    break;
    

    kopiere ich das selbe in WM_KEYDOWN bekomme ich das 'c' angezeigt.

    das doch komisch oder?


Anmelden zum Antworten