Dragable/ Movable Toolbar Control & ListView Control



  • Hi,

    ich habe versucht mit dem WindowStyle TBSTYLE_ALTDRAG für ein Fenster der Klasse TOOLBARCLASSNAME ein Toolbar Control zu erstellen, dass man verschieben kann.
    Es sollte also unter WinXP diese drei, vier Punkte links haben, und ein Cursor mit vier Pfeilen in alle Richtungen, wenn man darüber fährt.

    Der Style mit TBSTYLE_ALTDRAG zeigt aber keine Wirkung. So sieht das genau aus:

    hWndToolbar = CreateWindow(
        TOOLBARCLASSNAME,
        TEXT(""),
        WS_CHILD | WS_VISIBLE | WS_BORDER | TBSTYLE_FLAT | TBSTYLE_ALTDRAG,
        0, 0, 0, 0,
        hWndParent,
        0,
        hInstance,
        0
    );
    

    Wie kann man das machen, dass man es verschieben kann?



  • Nennt sich Rebar Control und ist eine eigene Funktion mit eigener Struktur, in die dann die Toolbar eingebettet wird.



  • Okay danke 🙂

    Jetzt habe ich noch eine Frage zu den ListView Controls:

    Ich habe hier einen ScreenShot aus dem Crysis Editor "Sandbox 2":
    http://img509.imageshack.us/img509/1362/tempn.png

    In diesem ListView (sofern das wirklich ein ListView ist und nicht irgendwas anderes) sind weitere Controls (Checkbox, Edit mit UpDown Control) in den einzelnen ListView Items.
    So was sieht man auch oft in VisualDesignern (z.B. VisualBasic) und auch in Level Editoren um die Eigenschaften von 3D Modellen komfortabel einstellen zu können.

    Wie kann man diese Untergeordneten WindowControls in die Items einfügen?
    Mit "SerParent" allein funktioniert das nicht.



  • Ich hoffe jemand von euch hat sowas schon mal gemacht.
    Ich kann mir nämlich einfach nicht erklären wie sowas zu implementieren und realisieren ist.



  • Ich habe sowas noch nicht gebraucht, daher kann ich Dir nur Hilfe zur Selbsthilfe geben:

    "Adding Controls to listcontrol" http://www.codeguru.com/cpp/controls/listbox/article.php/c4761/
    "Property Listbox" http://www.codeguru.com/cpp/controls/listbox/article.php/c1607/
    "A VisualStudio-like ListBox class" http://www.codeguru.com/cpp/controls/listbox/article.php/c1613/

    HTH,
    Martin


  • Mod

    Und wie bedient man so was? Wenn man nur Verschieben will, dann behandle WM_NCHITEST entsprechend.



  • Wenn ich ein Control Window (z.B. Checkbox) als Child zu einem TabControl oder ListView zu ordne (also "SetParent(hCheckBox, hTabControl)") dann gibt das Checkbox Control keine Nachricht mehr an WM_COMMAND zurück, jeden Falls nicht mehr an das Hauptfenster.
    Wie kann ich dann die Nachrichten abfangen? Schließlich sind die Klassen von diesen Control Windows schon vordefinidert wie eben WC_BUTTON ("BUTTON").
    Kann mir da vielleicht jemand weiter helfen?


Log in to reply