Zuordnung von verschiedenen ToolBars zu einzelnen Ansichten eines Views



  • Hallo,

    mein Programm (MFC) besteht aus einem View, von CView abgeleitet, in dem von
    unterschiedlichen Daten unterschiedliche Darstellungen (Tabellen oder Grafiken)
    erzeugt und angezeigt werden. Also so ein "Single Document"-Ding.

    Auf die einzelnen Darstellungen greift man über verschiedene ToolBars zu.
    Und mit jeder neuen Darstellung wechselt auch die zugehörige ToolBar.

    Ich habe das Programm nicht selbst geschrieben, sondern setze nur die Entwicklung fort,
    sonst wüsste ich vielleicht die Antwort.

    Also meine Frage:
    Kann mir bitte jemand erklären, wie die Zuordnung einer ToolBar zu solch einer
    Ansicht funktioniert?

    Ich finde hier beim besten Willen keine Erklärung oder in meinem Quellcode
    irgend welche Verweise, die die z.B. eine ToolBar über ihre ID referenzieren.
    Nur die einzelnen Buttons sind referenziert.
    Zur ToolBar selbst finde ich nur drei Einträge in den Resourcen:
    - die zugehörigen Buttons
    - die zugehörige Bitmap
    - und der "#define" für die ID

    Auch im Netz finde ich nur eine kurze Beschreibung des ToolBar Editors
    aber keinerlei Antwort auf meine Frage.

    Grüsse
    Helmut


  • Mod

    Das hat der Entickler wohl been selber gebastelt.

    Also wird ein CToolBar Objekt geben oder ein abgeleitetes Objekt.

    Aber zumindest wird CToolBar::LoadToolBar aufgerufen.

    Warum setzt Du nicht einfach in der MFC auf CToolBar::LoadToolBar einen Breakpoint und schaust dann mal in den Callstack. Kann doch nicht so schwer sein das zu Debuggen.



  • Vielen Dank Martin,

    das hat weitergeholfen!
    Aber manchmal ist es eben doch schwer, die richtige Richtung bei der Suche zu finden.
    Ab und zu steht man eben neben sich....

    Die CToolBar Klasse hatte ich schon gefunden, aber ohne LoadToolBar().
    Die stand wo anders.

    Eigentlich hätte ich es über die Suche nach der ID finden müssen,
    da diese auch in meinem Programm irgendwie dazu verwendet wird,
    die ToolBar aufzurufen.
    Nur leider ist da ein fieser Haken bei der Sache.
    Die ID´s der ToolBars enden alle (oder fast alle) mit "_0".
    Und das steht im Aufruf der ToolBar leider nicht mit dabei.

    Aber vielleicht kennt jemand den Grund dafür?

    Danke ud Grüsse
    Helmut


  • Mod

    Nö. Keine Ahnung was, dieser Anhang soll.
    Normal ist das nicht.

    Gibt es evtl. spezielle defines?
    Wurde das evtl. gemacht um Mehrsprachlichkeit zu erreichen?



  • In der resource.h finde ich z.B. zu (fast) jeder ToolBar drei Einträge.
    Ich kann nicht alle kontrollieren aber die, die ich angesehen habe, haben diese defines.
    So ist z.B. eine ToolBar ID "IDR_IO_UEBERSICHT_0".
    In der resource.h finde dazu:
    "IDR_IO_UEBERSICHT_0"
    "IDR_IO_UEBERSICHT_1"
    "IDR_IO_UEBERSICHT_2"

    Wenn ich den Mauszeiger über "IDR_IO_UEBERSICHT" lege, bekomme ich als Tool Tipp
    einen impliziten define: "#define IDR_IO_UEBERSICHT IDR_IO_UEBERSICHT_0".
    Diesen finde ich aber in meinem Quellcode nicht!

    Wir habe zwar Mehrsprachigkeit. Die ist aber anders gelöst. Toolbars sind da immer gleich.

    Aber oftmals werden doch unterschiedliche Grössen von Buttons für unterschiedliche
    Bildschirmauflösungen verwaltet. Vielleicht dient das dazu?

    Aber wenigstens komme ich nun wieder etwas weiter.
    Vielleicht bekomme ich mit der Zeit ja noch einige Antworten auf die eine oder andere Weise....

    Danke nochmal


  • Mod

    Mit Visual Assist könnte man einfach sagen: Gehe auf die Definition. 😉



  • Die Gedankenwelt meine Vorgängers hat mir schon Einiges an Kopfzerbrechen bereitet!
    Die seltsame Notation und die anschliessenden Umdefinierungen stammen von ihm.
    Keine Ahnung, was er damit anfangen wollte.
    Aber es hat sich somit alles geklärt.


Log in to reply