[gelöst] Ribbon einbinden



  • Hallo miteinander.

    Ich schreibe ein Programm mittels WinAPI und muss jetzt ein Ribbon-Menü einbinden. Alles was ich bisher gefunden habe, half mir nicht wirklich weiter. Ein Beispielprogramm, dass ich mal zum Testen runtergeladen habe, lässt sich zwar übersetzen, aber an der Stelle, an der das Ribbon geladen wird, liefert diese Funktion 0 zurück und das Fenster wird ohne Ribbon angezeigt. Da ich jetzt schon eine Ewigkeit suche, zunächst mal die Frage "hat das schon einmal einer von euch gemacht und kennt so ein paar Fallstricke?

    Danke für's Reinschauen.

    Gruß
    Kai


  • Mod

    Und wie sollen wir Dir helfen.

    Ein Suche ergab in 10 Sekunden diesen Link:
    http://www.codeproject.com/Articles/119319/Windows-Ribbon-Framework-in-Win-C-Application

    Aufgrund der Votes gehe ich davon aus, dass es geht...



  • Das habe ich auch gefunden. Hier habe ich das Codebeispiel heruntergeladen, dass insofern nicht funktioniert, als das es das Ribbon nicht anzeigt. Alle möglichen Codebeispiele die ich gefunden habe enthielten teilweise unterschiedlichen Code. Oft werden Codeabschnitte angegeben ohne, dass beschrieben wird, WO dieser Code hin soll. Je mehr Beispiele ich mir ansehe, umso mehr schaffe ich mir selbst Verwirrung. Ich möchte eigentlich nur wissen, was ich mindestens in mein Programm einfügen muss, damit ich mit einer solchen Menüleiste arbeiten kann.
    Ich benötige auf jeden Fall eine XML-Datei mit dem Aufbau des Ribbons und die richtige Einstellungen zum Ressource-Compilement (uicc.exe). Aber mir fehlt da noch irgendwas und ich weiß nicht was und nicht mehr weiter.


  • Mod

    Was ist Dein Problem?
    Das ist fast haarklein in der MSDN inkl. der Samples dort beschrieben. Werde konkret!
    https://msdn.microsoft.com/en-us/library/windows/desktop/dd371191(v=vs.85).aspx



  • Mein Problem ist, dass ich diese haarkleinen Anweisungen befolge, aber nichts von dem passiert, was passieren soll.
    Habe mir die Beispiel-XML-Datei, die das Ribbon beschreibt rauskopiert und diese, wie beschrieben ins Projekt eingebunden.

    Anschließend habe ich die Eigenschaften der XML-Datei geändert:
    - Übersetzung der XML via uicc.exe
    - Erstellung der Dateien ribbon.bml, ribbon.h, ribbon.xml
    - Ausgabe nach ribbon.bml

    Übersetzung läuft ohne Fehler, allerdings kann ich die (erstellten???) Dateien nicht finden. Im Programm wird auch kein Ribbon angezeigt.

    Ich weiß halt nicht, was ich da vergesse oder falsch mache.

    Befolgt habe ich die Anleitung unter:
    https://msdn.microsoft.com/en-us/library/windows/desktop/dd316924.aspx



  • Ich habe mir jetzt mal ein Ribbon-Beispiel von Microsoft runtergeladen. Das lässt sich auch mit VS 2010 übersetzen - und laufen tut es auch.
    Da ich aber mit VS 2012 arbeite, habe ich das damit mal geöffnet. Daraufhin wurden einige Anpassungen von VS 2012 gemacht. Beim Kompilieren erhalte ich aber die Fehlermeldung:

    error SC1053: Der Inhalt des Elements '{http://schemas.microsoft.com/windows/2009/Ribbon}Application.Commands' ist gemõ▀ dem Inhaltsmodell des ³bergeordneten Elements '{http://schemas.microsoft.com/windows/2009/Ribbon}Application' nicht g³ltig.
    

    Habe jetzt soviel herausgefunden, das xmlns was mit einem Namensbereichobjekt beim Überschreiben während der Kompilierung zu tun hat. Ich finde allerdings keine Alternative zu dem was da bisher eingetragen ist.

    Weiß jemand, ob, und wenn ja wodurch, <Application xmlns='http://schemas.microsoft.com/windows/2009/Ribbon'> in der 2012er Version von VS ersetzt werden muss.

    Gruß
    Kai



  • ganz einfacher Lösungsansatz, um vielleicht selbst dahinter zu kommen 🕶

    hast du schon mal versucht den link im Browser zu öffnen 😕

    http://schemas.microsoft.com/windows/2009/Ribbon

    vielleicht, aber auch nur vielleicht, erklärt sich dann die Fehlermeldung von selbst ⚠



  • Habe ich direkt nachdem der Fehler auftrat versucht - Seite war ungültig. Bin dann allerdings davon ausgegangen, dass das keine Seite ist, die zur Anzeige dient, sondern lediglich irgendwelche Infos für den uicc unter Port 80 zur Verfügung stellt.



  • nach eingabe des Links in den Browser, die Seite schrieb:

    The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

    Googels Übersetzer schrieb:

    Die Ressource Sie wurde entfernt suchen, umbenannt oder ist vorübergehend nicht verfügbar.

    😉



  • Mir schreibt der Browser nur:

    Die Webseite wurde nicht gefunden

    Das blöde an der Sache ist, dass mir VS bei Angabe einer anderen Adresse sagt,
    das es genau diesen Link (den es ja scheinbar nicht mehr gibt) erwartet.



  • Also das Beispielprogramm läuft jetzt ohne, dass ich den Tag

    <Application xmlns='http://schemas.microsoft.com/windows/2009/Ribbon'>
    

    geändert habe. Das Beispiel war eigentlich für die VS 2008 gedacht. Habe es jetzt damit geöffnet, dann mit VS 2010 und danach mit 2012. Jetzt läuft das Programm, obwohl die o.g. XML-Zeile, die er vorher in der 2012 angemeckert hat, in irgendeiner Weise editiert worden wäre (aufrufbar ist dieser Link allerdings immer noch nicht).


Log in to reply