Pfeiltastendruck überprüfen ...



  • Wer weiss was man schrieben muss ( C++ ) damit man an einer Bestimmten stelle im Programm gestoppt wird und der benutzer etwas Per Pfeiltsaten ( oben und unten ) auswählen muss ?
    Ich hätte mir vorgestellt das wenn dieses Programm stoppt das dann da etwas angezeigt wird ( es sind 2 Menüpunkte ) und wenn dann der Benutzer die Pfeiltasten drückt das dann die Betreffnden Menüpunkte angewählt werden ( Hover oder so ) Wie geht das ?



  • Du musst einfach dein Menü aufbauen und z.B. einen Rahmen mit ASCII-Zeichen "zeichnen", der immer den ausgewählten Menüpunkt umgibt. Frag die Tastatur ab und setze den Rahmen, je nachdem welche Taste gedrückt wurde. Beim Drücken von Return hast du durch die Position des Rahmens den gewählten Menüpunkt. Was hast du denn bislang schon?



  • also ich habe schonmal das menü ... jetz brauch ich eine Funktion die prüft ob eine Pfeilstaste ( nach oben ... nach unten ) gedrückt wird ... wurde ... !!!
    Um den rest kümmer ich mich ...

    P.S. Frohe EM :schland:



  • Siehe: klick

    Les dir mal meinen Beitrag durch.



  • Hallo,

    versuch mal dieses hier, habe ich in meiner Schatzkiste gefunden.

    #include <stdio.h>
    #include <conio.h>
    #include "tasten.h"
    
    unsigned short get_key(void)
    {
    	unsigned short ascii, scancode;
    
    	if( (ascii = getch()) == 224)
    		scancode = getch();
    	else
    		return ascii;
    
    	return scancode + 0x100;
    }
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	unsigned short taste;
    
    	do
    	{
    		taste = get_key();
    		switch( taste )
    		{
    		case PGUP:
    			printf("PGUP gedrückt\n");
    			break;
    		case PGDN:
    			printf("PGDN gedrückt.\n");
    			break;
    		case HOME:
    			printf("HOME gedrückt\n");
    			break;
    		case ENDE:
    			printf("ENDE gedrückt.\n");
    			break;
    		case LEFT:
    			printf("LEFT gedrückt.\n");
    			break;
    		case UP:
    			printf("Pfeil nach oben gedrückt.\n");
    			break;
    		case DOWN:
    			printf("Pfeil nach unten gedrück.\n");
    			break;
    		case RGHT:
    			printf("RGHT gedrückt.\n");
    			break;
    		}
    	}while( taste != ESC);
    
    	return 0;
    }
    

    HeaderDatei tasten.h

    #ifndef TASTEN_H
    #define TASTEN_H
    
    /* ------------------- Steuertasten -------------------- */
    
    #define PGUP            0x149 /* Page up */
    #define cPGUP           0x184
    #define aPGUP           0x199
    #define PGDN            0x151 /* Page down */
    #define cPGDN           0x176
    #define aPGDN           0x1a1
    #define HOME            0x147 /* Home */
    #define cHOME           0x177
    #define aHOME           0x197
    #define ENDE            0x14f /* End */
    #define cENDE           0x175
    #define aENDE           0x19f
    #define LEFT            0x14b /* Left */
    #define cLEFT           0x173
    #define aLEFT           0x19b
    #define UP              0x148 /* Up mit den Cursor Tasten */
    #define cUP             0x18d
    #define aUP             0x198
    #define DOWN            0x150 /* DOWN mit den Cursor Tasten*/
    #define cDOWN           0x191
    #define aDOWN           0x1a0
    #define RGHT            0x14d /* Right */
    #define cRGHT           0x174
    #define aRGHT           0x19d
    #define TAB             0x009 /* TAB */
    #define sTAB            0x10f
    #define cTAB            0x194
    #define aTAB            0x1a5
    #define BS              0x008 /* Backspace */
    #define cBS             0x07f
    #define aBS             0x10e
    #define INS             0x152 /* Insert */
    #define cINS            0x192
    #define aINS            0x1a2
    #define DEL             0x153
    #define cDEL            0x193
    #define aDEL            0x1a3
    
    /* --------------- Funktionstasten ---------------- */
    #define F1              0x13b       /* F1 */
    #define sF1             0x154
    #define cF1             (sF1+10)
    #define aF1             (sF1+20)
    #define F2              (F1+1)      /* F2 */
    #define sF2             (sF1+1)
    #define cF2             (cF1+1)
    #define aF2             (aF1+1)
    #define F3              (F1+2)      /* F3 */
    #define sF3             (sF1+2)
    #define cF3             (cF1+2)
    #define aF3             (aF1+2)
    #define F4              (F1+3)      /* F4 */
    #define sF4             (sF1+3)
    #define cF4             (cF1+3)
    #define aF4             (aF1+3)
    #define F5              (F1+4)      /* F5 */
    #define sF5             (sF1+4)
    #define cF5             (cF1+4)
    #define aF5             (aF1+4)
    #define F6              (F1+5)      /* F6 */
    #define sF6             (sF1+5)
    #define cF6             (cF1+5)
    #define aF6             (aF1+5)
    #define F7              (F1+6)      /* F7 */
    #define sF7             (sF1+6)
    #define cF7             (cF1+6)
    #define aF7             (aF1+6)
    #define F8              (F1+7)      /* F8 */
    #define sF8             (sF1+7)
    #define cF8             (cF1+7)
    #define aF8             (aF1+7)
    #define F9              (F1+8)      /* F9 */
    #define sF9             (sF1+8)
    #define cF9             (cF1+8)
    #define aF9             (aF1+8)
    #define F10             (F1+9)      /* F10 */
    #define sF10            (sF1+9)
    #define cF10            (cF1+9)
    #define aF10            (aF1+9)
    #define F11             0x185       /* F11 */
    #define sF11            (F11+2)
    #define cF11            (F11+4)
    #define aF11            (F11+6)
    #define F12             (F11+1)     /* F12 */
    #define sF12            (sF11+1)
    #define cF12            (cF11+1)
    #define aF12            (aF11+1)
    
    /* ------------------- alt - Codes ------------------ */
    
    #define alt_Q           0x110
    #define alt_W           (alt_Q+1)
    #define alt_E           (alt_Q+2)
    #define alt_R           (alt_Q+3)
    #define alt_T           (alt_Q+4)
    #define alt_Y           (alt_Q+5)
    #define alt_U           (alt_Q+6)
    #define alt_I           (alt_Q+7)
    #define alt_O           (alt_Q+8)
    #define alt_P           (alt_Q+9)
    
    #define alt_A           0x11e
    #define alt_S           (alt_A+1)
    #define alt_D           (alt_A+2)
    #define alt_F           (alt_A+3)
    #define alt_G           (alt_A+4)
    #define alt_H           (alt_A+5)
    #define alt_J           (alt_A+6)
    #define alt_K           (alt_A+7)
    #define alt_L           (alt_A+8)
    
    #define alt_Z           0x12c
    #define alt_X           (alt_Z+1)
    #define alt_C           (alt_Z+2)
    #define alt_V           (alt_Z+3)
    #define alt_B           (alt_Z+4)
    #define alt_N           (alt_Z+5)
    #define alt_M           (alt_Z+6)
    
    #define alt_1           0x178
    #define alt_2           (alt_1+1)
    #define alt_3           (alt_1+2)
    #define alt_4           (alt_1+3)
    #define alt_5           (alt_1+4)
    #define alt_6           (alt_1+5)
    #define alt_7           (alt_1+6)
    #define alt_8           (alt_1+7)
    #define alt_9           (alt_1+8)
    #define alt_0           (alt_1+9)
    
    /* --------------- Sonstige Tasten ----------------*/
    
    #define ESC             0x01b /* Escape */
    #define aESC            0x101
    #define LEER            0x020
    #define RETRN           0x00D /* Return */
    #define cRETRN          0x00A
    #define aRETRN          0x11c
    #define a_nRETRN        0x1a6 /* Return at numpad */
    #define c_grPLUS        0x190 /* grey + */
    #define a_grPLUS        0x14e
    #define c_grMINUS       0x18e /* grey - */
    #define a_grMINUS       0x14a
    #define c_grMULT        0x196 /* grey * */
    #define a_grMULT        0x137
    #define c_grDIV         0x195 /* grey / */
    #define a_grDIV         0x1a4
    #define Num5            0x14c /* 5 at num pad */
    #define cNum5           0x18f
    #define UE              0x081 /* š */
    #define sUE             0x09a
    #define aUE             0x11a
    #define OE              0x094 /* ™ */
    #define sOE             0x099
    #define aOE             0x127
    #define AE              0x084 /* Ž */
    #define sAE             0x08e
    #define aAE             0x128
    #define ES_Z            0x0E1 /* á */
    #define aES_Z           0x182
    #define aHYPHEN         0x183 /* ' */
    #define FRAGE				0x3f  /* ? */
    /* ------------- Umschalt-Tasten ----------------*/
    
    #define EINFUEGEN 	0x80
    #define CAPS_LOCK 	0x40
    #define NUM_LOCK  	0x20
    #define SCROLL_LOCK 	0x10
    #define ALT				0x08
    #define CTRL			0x04
    #define SHIFT_LINKS  0x02
    #define SHIFT_RECHTS 0x01
    
    #define NoKey           1000   /* unmoeglicher Code   */
    
    #endif /*TASTEN_H*/
    

    Ich hoffe das ich helfen konnte.



  • also der Dev-C++ Compiler gibt folgenden Fehler aus "[Linker error] undefined reference to `WinMain@16' " nächster " ld returned 1 exit status " nächster " C:\Dokumente und Einstellungen\admin\Eigene Dateien\C++Projekts\4\Makefile.win [Build Error] [Project1.exe] Error 1 " ... so diese drei Fehler werden mit dem Dev-C++ Compiler ausgegeben ... ich installier grad "Visual Studio" 😞 ... vielleicht gehts da ...



  • ok ... bei VC++ ( Visual Studio 2008 ) kommen diese Fehler:

    Fehler 3 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_main" in Funktion "___tmainCRTStartup". MSVCRTD.lib

    Fehler 4 fatal error LNK1120: 1 nicht aufgelöste externe Verweise. C:\Dokumente und Einstellungen\admin\Eigene Dateien\Visual Studio 2008\Projects\Tasten\Debug\Tasten.exe 1

    UND DIESE WARNUNGEN :

    Warnung 1 warning C4996: 'getch': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _getch. See online help for details. c:\dokumente und einstellungen\admin\eigene dateien\visual studio 2008\projects\tasten\tasten\main.cpp 12

    Warnung 2 warning C4996: 'getch': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _getch. See online help for details. c:\dokumente und einstellungen\admin\eigene dateien\visual studio 2008\projects\tasten\tasten\main.cpp 13

    WAS läuft falsch ??



  • Binde mal windows.h ein.



  • geht alles net ... hab fast 9 Dateien eingebunden ... ich will doch nur eine PRIMITIVE Funktion die Das macht : ( auf deutsch )

    ... vorher
    frage benutzer nach taste ;
    wenn ( taste = PfeilRauf )
    {
    funktion 1() ;
    }

    wenn aber ( taste = PfeilRunter )
    {
    funktion 2();
    }

    ... ende



  • BINGO ... habe bei dem main.cpp etwas verändert ...

    int main() 
    { 
        unsigned short taste; 
        ...
    

    JETZ KLAPPT ALLES HERVORRAGEND ... DANKE /JOCHEN/


Anmelden zum Antworten