Wir haben eine relativ große MFC-Anwendung, die eine SDI zum Hosten einer Reihe dynamisch erstellter CView-basierter Ansichten verwendet. Die Grundstruktur der Anwendung ähnelt Outlook (Baumansicht links, dynamische Ansicht (en) rechts).Verwalten des Eingabefokus für eine MFC SDI-Mehrfachansichtsanwendung
Ich habe rätselhaft über die richtige Art, Fokuswechsel in der App zu behandeln. Ich möchte beispielsweise in der Lage sein, auf die Registerkarte "Tab" zu klicken, während der Fokus auf der Baumansicht (linke Ansicht) liegt, und den Fokus auf die rechte Ansicht verschieben. Während ich die Tab-Taste in der Baum-Ctrl erfassen und manuell in die entsprechende Ansicht wechseln konnte, haben wir viele verschiedene View-Typen (einige CFormView-basiert) und viele Splitter-Controls und ich bin mir nicht sicher, ob es ein generischeres gibt Art und Weise, damit umzugehen.
Ich weiß, den Fokus in einer CDialog- oder CFormView- ist einfach (nur mithilfe der integrierten Registerkarte Reihenfolge-Manager in Visual Studio), aber eine Anwendung, die mehrere Ansichtstypen und Trennleisten hostet usw. ist viel komplexer . Befindet sich der Fokus beispielsweise in einer Formularansicht, wenn ich über das Ende der Registerreihenfolge der Formularansicht hinaus wische, wie kann ich feststellen, dass ich den Eingabefokus in eine andere (dynamische) Ansicht ändern muss?
Prost und vielen Dank.
Darren.