Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Wm_keydown

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
12.11.2002, 19:13 Uhr
~c-mos
Gast


N'Abend,

ich habe mich an WM_KEYDOWN versucht.
Habe für den Dialog WM_KEYDOWN hinzugefügt.
Was genau schreibe ich in die Funktion rein ?
Hatte das was mit switch und char gelesen aber
das funktioniert irgendwie nicht.
Woher weiß die Funktion welche Taste gedrückjt wurde ?
bzw. wie kann ich es schreiben damit beispielsweiße
beim drücken von F2 eine andere Funktion aufgerufen wird ?

mfG
c-mos
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
12.11.2002, 20:09 Uhr
void*
Generic Pointer
(Operator)


Hallo!

Du uberprüfst den Wert von nChar (beinhaltet den virtual key code) mit ifs oder mit switch:

Folgender Code prüft z.B. ob die Taste F4 gedrückt wurde:

C++:
void CDlgDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
    if(115==nChar)
        MessageBox("Sie haben F4 gedrückt!");
    
    CDialog::OnKeyDown(nChar, nRepCnt, nFlags);
}


--
Gruß
void*
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.11.2002, 21:21 Uhr
~c-mos
Gast


Hallo void*,

das funktioniert irgendwie nicht.
Ich habe sogar noch mal alles von vorn gemacht und dein
stück code als erstes probiert ohne vorher etwas anderes zu tun.

Habe folgendes gemacht.
1. Datei -> Neu -> Projekte -> MFC Anwendungsassitent (exe) -> Dialogfeldbasierend.

2. Rechte Maustaste auf den Dialog der standardmäßig OK und Abbrechen als
Buttons besitzt.
-> Klassenassistent -> Register: Nachrichtenzuordnungstabellen
-> Klassenname: CTestDlg -> Objekt ID: CTestDlg
-> Nachrichten: WM_KKEYDOWN -> Funktion hinzufügen -> code bearbeiten
-> habe dann dort deinen Code reinkopiert. Nach dem Kompilieren & linken
passierte nichts als ich F4 gedrückt habe.
Habe dann noch nChar deklariert als Membervariable.

Wo liegt das Problem ?

mfG
c-mos
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
12.11.2002, 21:45 Uhr
void*
Generic Pointer
(Operator)


Hallo!

nChar ist keine Membervariable!

Die kommt in die Funktion rein:


C++:
void CDlgDlg::OnKeyDown([b]UINT nChar[/b], UINT nRepCnt, UINT nFlags)




Versuch mal alle Steuerelemente wegzumachen (leerer Dialog). Dann starte die Applikation. Dann klicke auf das Fenster (so dass es bestimmt den Fokus hat). Dann drücke F4.
Es sollte klappen. Sonst meld Dich noch mal.
--
Gruß
void*
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
12.11.2002, 21:59 Uhr
~c-mos
Gast


Hallo,

mit einem leeren dialog funktionierts.

gruß
c-mos
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
12.11.2002, 22:00 Uhr
~c-mos
Gast


Warum geht das eigentlich nicht wenn man buttons hat ?

mfg
c-mos
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
12.11.2002, 22:01 Uhr
Tobi




Zitat:

MSDN zu CWnd::OnKeyDown:
Remarks


The framework calls this member function when a nonsystem key is pressed. A nonsystem key is a keyboard key that is pressed when the ALT key is not pressed or a keyboard key that is pressed when CWnd has the input focus.


--
Mit Computern können wir Probleme lösen die wir ohne sie gar nicht erst hätten!

mfg

Tobi

Dieser Post wurde am 12.11.2002 um 22:03 Uhr von Tobi editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
12.11.2002, 22:18 Uhr
~c-mos
Gast


Hi Tobi,

das war mir schon klar, hatte das bereits gelesen.
Habe das beispiel von void mal durchprobiert und mußte feststellen
das jedesmal bei F1 auch die hilfe mit aufgerufen wird die es gar nicht gibt.
Desweiteren geht das nur bis F9.
F1 - F9
112 - 120
F10,F11,F12 reagieren nicht? Sind doch 121-123 ?

mfG
Robert
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
12.11.2002, 23:10 Uhr
void*
Generic Pointer
(Operator)


Ich probier das morgen aus. Jetzt bin ich zu müde. Mein Linux kotzt mich an... Klappt wahrscheinlich nicht weil der Button den Focus hat oder so... wie gesagt morgen dann...
--
Gruß
void*
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: