Hallo,
ich steh grad bissl aufm Schlauch und komm irgendwie nich weiter. Vielleicht habt Ihr ja ne Idee. Das Problem:
Ich Implementiere in meiner MDI-Anwendung in einem Fenster IMessageFilter um Tastatureingaben abzufangen:
Wenn er anhand des PreFilterMessage das Ereignis OnKeyDown aufruft und in mein implementiertes Keydown-Ereignis des Forms springt, so kennt der alle private-Variablen nicht mehr. Das heißt z.B. wenn ich einen Videoplayer hab und der einen Framestepbutton besitzt, dann funktioniert der Framestep super, wenn ich auf den Button klicke. Nehme ich allerdings die Richtungstaste und die PreFilterMessage-Funktion wird durchlaufen, so kennt der viele Objekte in der FrameStep-Methode nichtmehr. Muss ich dann alle Objekte, die dort verwendet werden als shared definieren?
--> alle Anweisungen in performStepFwd() funktionieren
--> wird u.a. von PreFilterMessage aufgerufen
--> Anwendung stürzt ab, weil Anweisungen in performStepFwd() nicht ausgeführt werden können (Objekte und Variablen sind nicht gesetzt)
Wie kann ich das Problem umgehen?
Gruß ... Drea
ich steh grad bissl aufm Schlauch und komm irgendwie nich weiter. Vielleicht habt Ihr ja ne Idee. Das Problem:
Ich Implementiere in meiner MDI-Anwendung in einem Fenster IMessageFilter um Tastatureingaben abzufangen:
Quellcode
- Private Function PreFilterMessage(ByRef m As _
- System.Windows.Forms.Message) As Boolean Implements _
- System.Windows.Forms.IMessageFilter.PreFilterMessage
- Debug.WriteLine(m.Msg.ToString)
- ' Message = WM_KEYDOWN
- If m.Msg = &H100 Then
- Select Case m.WParam.ToInt32
- Case &H26 'Up
- OnKeyDown(New KeyEventArgs(Keys.Up))
- Return True
- Case &H28 'Down
- OnKeyDown(New KeyEventArgs(Keys.Down))
- Return True
- Case &H25 'Left
- OnKeyDown(New KeyEventArgs(Keys.Left))
- Return True
- Case &H27 'right
- OnKeyDown(New KeyEventArgs(Keys.Right))
- Return True
- End Select
- End If
- ' Nachrichtenbearbeitung fortsetzen
- Return False
- End Function
Wenn er anhand des PreFilterMessage das Ereignis OnKeyDown aufruft und in mein implementiertes Keydown-Ereignis des Forms springt, so kennt der alle private-Variablen nicht mehr. Das heißt z.B. wenn ich einen Videoplayer hab und der einen Framestepbutton besitzt, dann funktioniert der Framestep super, wenn ich auf den Button klicke. Nehme ich allerdings die Richtungstaste und die PreFilterMessage-Funktion wird durchlaufen, so kennt der viele Objekte in der FrameStep-Methode nichtmehr. Muss ich dann alle Objekte, die dort verwendet werden als shared definieren?
--> alle Anweisungen in performStepFwd() funktionieren
--> wird u.a. von PreFilterMessage aufgerufen
--> Anwendung stürzt ab, weil Anweisungen in performStepFwd() nicht ausgeführt werden können (Objekte und Variablen sind nicht gesetzt)
Wie kann ich das Problem umgehen?
Gruß ... Drea