OnKeyDown Event im Eingabefeld
-
Hallo,
bin Visual c++ newbie. Ich habe im Internet schon nach Lösungen gesucht. Bin aber nicht weitergekommen. Ich versuche im Eingabefeld die "Return-Taste" abzufangen, weil sonst das Fenster automatisch geschlossen wird.
Irgendwie geht`s nichtKönnt ihr mir bitte helfen?
Vielen Dank schon mal!
Mein Code schaut so aus:
// Generierte Message-Map-Funktionen //{{AFX_MSG(CJohnDlg) virtual BOOL OnInitDialog(); afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); afx_msg void OnKeyDown(UINT nChar,UINT nRepCnt, UINT nFlags); BEGIN_MESSAGE_MAP(CJohnDlg, CDialog) //{{AFX_MSG_MAP(CJohnDlg) ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_WM_KEYDOWN() //}}AFX_MSG_MAP END_MESSAGE_MAP() void CMeinDlg::OnKeyDown(UINT nChar,UINT nRepCnt, UINT nFlags) { AfxMessageBox("hey du hast eine Taste gedrückt"); switch(nChar) { case VK_RETURN: SetWindowText("Hey du hast Return gedrückt"); break; default: break; } CDialog::OnKeyDown(nChar,nRepCnt,nFlags); }
-
Hallo,
einfach die OnOK()-Fkt überschreiben....!
void CirgedendeinDlg::OnOK() // ---------------------------------------------------------------------------- { // nichts tun -> so wird vermieden das sich DLG bei Return schließt }
Das sollte schon helfen.
Gruss
S.
-
Hi Stefan,
das mit OnOK() überschreiben hat mir schon ein bisschen geholfen. Aber ich will trotzdem das Ereignis OnKeyDown abfangen und auswerten. Kennst Du noch eine Möglichkeite?
Danke,
Newbie
-
Wie kann ich nun verhindern das mein Fenster durch ESC drücken zugeht ?
Wenn ich einfach OnCancel() überschreibe funktioniert ja der Close-Button (das rote Xnicht mehr....