RibbonBar - Commands kommen nicht an



  • Hallo,
    ich habe ein SDI-Projekt mit einer TreeView links und einer ListView rechts mit einem Menu im Ribbon-Look. In diese Ribbon-Bar habe ich jetzt eigene Menueinträge eingefügt und dazu dann entsprechende Ereignishandler in der MainFrame-Klasse eingefügt. Leider werden die Ereignishandler aber nicht angesprungen. Spy++ sagt mir, dass die Ereignisse LBUTTONDOWN und LBUTTONUP über dem Button erfolgen.
    Aber wo geht nun das Kommayndo hin? Gibt es beim Ribbon-Menu etwas besonderes zu beachten?

    Mfg

    Wilfried



  • zu früh gepostet. Die ID's waren alle ID_STATIC, da kann es nicht gehen.

    Danke fürs lesen

    Wilfried



  • Interessant ist aber:
    ich habe die Buttons aus der Toolbox zugewiesen per Drag and Drop und natürlich auch die ID entsprechend meinen Vorstellungen geändert und damit die Ereignishandler erzeugt.
    Warum aber waren dann später die ID's alle auf IDC_STATIC geändert? Kann man im Ribbon Menu-Einträge nur über den Designer einfügen und bearbeiten, ohne obige Probleme zu bekommen?

    Mfg

    Wilfried



  • Hallo,
    ich habe jetzt wieder das Problem gehabt, dass ein Button, nachdem ich neue Buttons in die RibbonBar integriert hatte, nicht mehr funktionierte. Vorher lief alles ordentlich.
    Fehler: die ID des Buttons war auf einmal auf IDC_STATIC gesetzt. Aber nicht von mir!

    Weiteres Problem: Wenn ich einen neuen Button in die RibbonBar einfüge und eine ID zuweise, kann ich ordnungsgemäß einen Handler erzeugen. Meist aber sagt dann Intellisence, die ID existere nicht, wenn ich in der CMainFrame den Mauszeiger auf die ID platziere. Die ID existiert aber in der Liste. Der Code wird ohne Fehlermeldung compiliert, aber funktioniert nicht. Die zugehörige Funktion wird nicht angesprungen. Nach mehrmaligem Einfügen und Löschen von Buttons wird die ID dann auf einmal von Intellisence erkannt und die Funktion wird dann auch richtig angesprungen.

    Wo liegt hier der Fehler?
    Irgenwo muß doch da ein Problem in der ID-Verwaltung liegen???

    System: VC 2010, Windows XP SP3.

    Danke

    Wilfried


  • Mod

    Und wo erzeugst Du den Handler?
    Es gibt etwas, das sisch Command Routing nennt... Hast Du das berücksichtigt?



  • Den Handler erzeuge ich, indem ich den Button in der RibbonBar mit rechts anklicke und dann "Ereignishandler hinzufügen" wähle. Es erfolgt auch eine ordentliche Eintragung in die MessageMap, die Funktion wird angelegt und in der .h wird die Funktion deklariert. Fahre ich dann mit dem Mauszeiger über die ID in der MessageMap, meckert Intellisence, dass es die ID nicht gibt und der obige Effekt tritt auf. Wenn ich dann einen zweiten Button anlege und dafür einen Handler einrichte, klappt es meistens (nicht immer). Aber damit könnte ich leben, indem ich halt einen Dummy anlege und hinterher wieder lösche. Obwohl das ja eigentlich nicht notwendig sein sollte.

    Aber warum wird manchmal die ID eines Buttons in IDC_STATIC geändert? Das dürfte ja nun überhaupt nicht auftreten.

    Mfg

    Wilfried


  • Mod

    Das sich etwas "ändert" (von selbst) habe ich noch nicht erlebt. Das Buttons mit IDC_STATIC angelegt wurden hatte ich auch noch nicht.



  • Ich hatte das nun schon zweimal. Immer dann, wenn ich Buttons in der RibbonBar hinzugefügt/gelöscht hatte. Und im Zusammenhang mit dem anderen geschilderten Problem vermute ich mal irgend ein Problem in der ID-Verwaltung. Aber wissen tue ich es nicht. Etwas anderes fällt mir aber auch nicht ein.

    Mfg

    Wilfried

    EDit: Nochmal zum Verständnis: Die Buttons werden beim Einfügen mit ID_BUTTONxyz angelegt und die ID dann von mir geändert in eine erklärende ID. Die Änderung in IDC_STATIC erfolgt, wenn ich andere Buttons hinzufüge/lösche.



  • Ich habe noch was ausprobiert. Vielleicht kann das ja mal jemand nachvollziehen:

    Ich habe einen Button (ID_HAUPTANSICHT) in der RibbonBar in eine andere Region verschoben. Kompiliert->Button funktioniert nicht. Angezeigt wird im Eigenschaftenfenster ID_HAUPTANSICHT. Button wieder zurückgeschoben, kompiliert->Button funktioniert nicht. ID_HAUPTANSICHT wird im Eigenschaftenfenster angezeigt.

    VS geschlossen und wieder geöffnet: Kompiliert->für den Button wird im Eigenschaftenfenster IDC_STATIC angezeigt und er funktioniert nicht. ID wieder auf ID_HAUPTANSICHT gesetzt, kompiliert->Button funktioniert wieder ordnungsgemäß.

    Wo kommt das her?

    Mfg

    Wilfried


Anmelden zum Antworten