PreTranslateMessage(MSG* pMsg) reagiert nicht (immer)
-
moin moin,
meine (dialogfeldbasierende) anwendung kommuniziert über die serielle Schnittstelle und drei verschiedenen modems (analog extern, fritzcard und funkmodem extern) mit einem gerät das über ein funkmodem verfügt. bei bestehender verbindung versende ich mit hilfe von PreTranslateMessage(MSG* pMsg) bestimmte tastatureingaben. wenn die verbindung mit funkmodem oder fritzcard hergestellt wurde funktioniert alles wunderbar, aber beim analog-modem regt sich überhaupt nichts wenn ich eine taste drücke.
BOOL CRuConnectDlg::PreTranslateMessage(MSG* pMsg) { if(pMsg->message == WM_KEYUP && CommStatus == 1) { if(pMsg->wParam >= 33 && pMsg->wParam <= 90 || pMsg->wParam == 13 ) { input = pMsg->wParam; OnSenden(); } } if( pMsg->message == WM_MOUSEMOVE && pMsg->hwnd == GetDlgItem(IDC_TEST)->m_hWnd) { HCURSOR lhCursor; lhCursor = AfxGetApp()->LoadCursor(IDC_HAND); SetCursor(lhCursor); } return CDialog::PreTranslateMessage(pMsg); }es ist noch anzumerken, daß der zweite if-block (WM-MOUSEMOVE) in jedem fall funktioniert. wenn ich spaßeshalber vor dem ersten if-block folgendes einbaue, funktioniert nachdem ich durch die A-Taste die MessageBox ausgelöst habe auch beim analog-modem alles wie es soll:
if(pMsg->wParam == 65) MessageBox("moin");fällt irgendwem dazu eine erklärung ein ?
-
Hat vielleicht ein anderes Fenster in dem Augenblick den Focus, das kein Child des Dialogs ist ?
Dann würde die Nachricht vermutlich "danneben" geschickt werden
-
genau das wars, besten dank!