Einfache Realisierung von einblendbarer Steuerelementleiste in Fenster gesucht



  • Hallo,

    in einer SDI App mit CFrameWndEx Rahmenfenster soll ein Fenster oder eine Leiste (jeweils ohne Titelleiste) mit Steuerelementen durch einen Menübefehl geöffnet bzw. aufgerufen werden. Dann soll die Steuerelement-Leiste am unteren Fensterrand fest verankert und nicht verschiebbar sein - später jedoch wieder mit einem Menübefehl geschlossen werden können.

    So soll die App in etwa mit eingeblendeter Steuerelementleiste aussehen:
    http://up.picr.de/13722192mv.png

    Welche Möglichkeiten gibt es so etwas umzusetzen?

    Da mehrere verschiedene solcher Leisten in der App existieren (aber jeweils immer nur eine ist zur Zeit akiv), wäre es praktisch, wenn sie als Dialogresource erstellt werden könnten.

    In einem alten SDI Projekt auf CFrameWnd basierend hatte ich das mit einer fest verankerten CDialogbar gelöst (die allerdings nicht ausblendbar war). Aber mit CFrameWndEx ist CDialogbar leider nicht mehr kompatibel. Bei CDockablePane etc. läßt sich dagegen die Titelleiste nicht ausblenden. Aber vielleicht gibt es ja noch ganz andere einfache Lösungen, an die ich bisher noch nicht gedacht habe.

    Hat jemand eine Idee?


  • Mod

    Ja das geht. Du musst dich aber entscheiden ob Du nun ein Dockbares Fenster haben willst oder einen Toolbar. Die werden ähnlich aber doch unterschiedlich behandelt.



  • Wenn sich Toolbar oder Fenster später auf die gleiche Weise bedienen lassen ist es mir egal. Die Oberflächenbedienung der "Steuerelementleiste" sollte einer Toolbar ähneln, also den Fensterfokus nicht an sich ziehen und wichtig, während der Laufzeit ein-und ausblendbar sein. Schön wäre auch, wenn sich die "Steuerlementleiste" in einem Resourceneditor, wie ein Dialog erstellen ließe. Ist das möglich?


  • Mod

    Ja, die lassen sich ein und ausblenden zur Laufzeit. Das mache ich auch in bestimmten Fällen wenn Ergebnisse/Kontext im Programm das erfordern.

    Erzeuge den Controlbar einfach nicht AFX_CBRS_FLOAT dann kann er schon mal nicht floaten. Bzw. Abgedockt werden.
    Das sollte eigentlich schon genügen.



  • Vielleicht habe ich mich zu unklar ausgegedrückt. Es fehlt mir die Erfahrung, über welche MFC-Klassen die gewünschte Steuerelementleiste am besten und einfachsten erzeugt wird.

    Bisher verfüge ich nur über Erfahrung mit CDialogBar, die ich in der OnCreate Funktion der Klasse "CFrameWnd" erzeugte.

    Mein jetziges Project basiert aber auf "CFrameWndEx" und dem neuen Dockmanager. Weil ich die MFC 2008 Extension Pack Funktionen nutzen möchte. Da funktioniert CDialogbar nicht mehr.

    Die Frage ist, mit welchen Klassen sich mit "CFramWindEx" die gewünschte Steuerlementleiste umsetzen läßt. Welche MFC-Klassen sind dazu geeignet bzw. zu empfehlen?


  • Mod

    CMFCToolBar hat doch alles. Du schreibst doch, dass es um einen "Toolbar" geht.

    Zudem gibt es für das Extensionpack genug Samples, die Dir den Umgang hier zeigen.



  • Die MFCToolbar kenne ich schon vom IEDemo-Beispielprogramm. Ich glaube aber, daß es nicht möglich ist in eine CMFCToolbar eine Resource einzubinden, die mit einem Resource-Editor erstellt wurde, wie daß z.B. bei CDialog der Fall ist.

    Dann bleibt mir wohl nicht anderes übrig, als mich mit der manuellen Einbindung und Anordnung der Steuerelemente in eine CMFCToolbar anzufreunden.

    Ich hatte auf eine etwas einfachere Methode gehofft.

    Trotzdem danke für die Hilfe!


Anmelden zum Antworten