Ereignis Keydown



  • Ich habe ein Problem beim abfangen von Tastatureingaben.
    Ich will, das bei "F1","F2" und "1" eine Funktion ausgeführt wird, aber be "1" klappt es nicht VK_1 wird nicht als Konstante erskannt. WARUM?

    Hier der Code

    BOOL CTestDlg::PreTranslateMessage(MSG* pMsg) 
    {
    
    	if( uMessage==WM_KEYDOWN || uMessage==WM_KEYUP )
    	{
    		if((pMsg->lParam & 0xFFFF) <= 1)// die ersten 16 Bits des lParam's enthalten die Anzahl der Wiederholungen,
    		{								// ich brauche nur einmaliges Drücken	
    
    			switch( (int)pMsg->wParam )
    			{// wParam enthält das virtuelle Tastenkode
    
    			case VK_F2: // F2 <-- klappt
    				OnF2();
    				return 1;
    			case VK_F3: // F3 <-- klappt
    				OnF3();
    				return 1;
    			case VK_1: // Taste "1" <-- klappt nicht
    				On1() ;
    				return 1;
    			}
    		}
    	}
    

    return CDialog::PreTranslateMessage(pMsg);
    }

    Jemand eine Idee?



  • versuch domal herrauszubekommmen, welchen Code "1" überhaupt hat

    also schreib in die PreTranselateMessage() funktion:

    CString s;
    s.Format("%d",  (int)pMsg->wParam);
    AfxMessageBox(s);
    

    und das was die MessageBox anzeigt musst du dann einfach einsetzten

    mfg Emperor_L0ser


Anmelden zum Antworten