Frage

Eine des Standardmenüs zu einem Dokument / View-App unter MFC vorgesehen ist das Windows-Menü. Es bietet Dinge wie Fliesen und kaskadierende Fenster und fügt eine Aufzählungs Liste der aktuell verfügbarer Ansichten am Ende des Menüs. Das Problem ist, manchmal ist es nicht, und ich möchte wissen, warum. Genauer gesagt, würde ich gerne wissen, wie diese Liste zu aktualisieren, wie ich es unter einem GUI-Automatisierungstool verwenden möchten. Normalerweise ist die Liste ist es, manchmal ist es nicht, jemand wissen, warum? Meine Vermutung ist, dass es eine Funktion tief in der CFrameWnd-Klasse danach aussehen, aber ich kann nicht scheinen, um es zu finden.

Edit:. Ich bin auch die Stingray-Bibliothek für GUI, die auch einen Einfluss auf das Problem haben könnte

War es hilfreich?

Lösung

das Menü aktualisiert und die Fenstertitel werden separatelly in zwei Verfahren behandelt werden.

  • CFrameWnd::OnUpdateFrameMenu(..) Aktualistert nur der Rahmen-Menü
  • CFrameWnd::OnUpdateFrameTitle(..) frischt nur den Namen des Rahmens.

Ich denke, es irgendwo eine falsche Anruf Ordnung ist und den Titel der Aktualisierung wird später als das Menü zu aktualisieren. Nach all dem Titel im Menü Fenster bleibt manchmal eine leere Zeichenfolge.

Der einfachste Weg, um eine Reparatur durch den GetActiveFrame()->ActivateFrame() Methodenaufruf. Es wird aktualisiert immediatelly die aktuellen Rahmenfenster und das im Besitz Menü Fenster zu. Es kann nach dem CDocument zu schaffen und die CView verwendet werden. Der beste Ort, um es zu nennen, ist in Ende OnFileNew, OnFileOpen außer Kraft gesetzt Methoden (CWIN) App-Klasse der Anwendung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top