WM_KEYDOWN geht nicht...
-
hallo,
ich habe vor langer Zeit mal einen WM_KEYDOWN gesetzt, das war unter VS 2003, das ging ohne Probleme. Irgendwie haut das mit VS 2008 nicht hin?!void CTestDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) { // TODO: Add your message handler code here and/or call default char cChar; cChar=char(nChar); if (cChar == 'q') { OnOK(); } CDialog::OnKeyDown(nChar, nRepCnt, nFlags); }
-
Nur das Fenster, dass den Focus hat bekommt die WM_KEYDOWN Nachrichten. Wenn also Dein Dialog ein Child-Control hat, dann bekommt das brav die WM_KEY... Nachrichten.
Die VS Version spielt hier zu 100% keine Rolle...
-
nein, der Knopf q soll vom Hauptfenster aus das den Dialog xy aufrufen, aber er beendet nicht einmal mein Prog?!
-
...zusatz:
Ich Prinzip klicke ich auf Event, dann auf WM_onKeydown. Quellcode einfügen, von oben.Aber es geht nicht. Wenn ich q drück höre ich nur Ping Ping, aber mein Prog läuft weiter.Seltsam?!
-
Du liest nicht was ich schreibe, oder Du verstehst esnicht.
Nochmal: WM_KEY... Nachrichten bekommt nur das Fenster, dass den Eingabefokus hat. Du hast aber einen Handler im Dialog Fenster. Dieses ist aber i.A. das Parent Fenster und hat weieter Child-Windows, die nur den Fokus haben können.
Das Zeichen dafür, dass Du es flasch anstellst, oder eben dieses Zeichen, dass Du eingibst von diesem Control (das den Fokus hat) nicht verstanden wird ist der Beep!
-
erstmal thx,
10 mal habe ich deine Text gelesen.
ich verstehe dich nicht.
Wenn ich z.B. NUR ein Hauptfenster habe, dann muss doch q reagieren, unabhängig von den anderen Fesnter?!Ich will erstmal im Hauptfenster q drück und das HP soll sich beenden.
-
Und Du hast garantiert kein ChildControl angelegt?
-
sagen wie mal so, ich bin fast bei 5000 Programmierzeilen.Aber von ChildControl habe ich nichts gemacht.Meine Frau bekommt bald ein Kind aber mehr nicht.
m_hoeraufdenport.SetParentDlg(this); // wowas habe in reingefummel,aber mehr nicht.
-
<seufz/>
Also frage ich mal anders.
Du hast einen Dialog. Ist da ein Edit-Control drin oder ein Button?
-
ja, die Tastatur abfrage läuft im Hauptfenster.
3 x Edit Controll mit value/control
17x Knöpfe
30x unterfunktionendie hälfte der Knöpfe öffnen Dialoge mit:
1x Edit Controll mit mit value/control
2x Knöpfeeiner der Knöpfe startet ein Port auf listens
einer Druckerfunktion ist auch noch dabei.Habe ich deine Frage beantwortet?
-
...habe ich was falsches gesagt?
-
Die Frage habe ich bereits beantwortetm, also nochmal.
WENN Dein Dialog CHild Controls hat, DANN bekommt Dein CDialog KEINE WM_KEYDOWN Nachrichten. Punkt!
Es nicht den Focus...Lerne Windows Basics.
Ich bin kein Handbuch.
EOD.