Ownerdrawn ListBox: Standard VScroll verwenden



  • Hi zusammen,

    ich habe mir eine ownerdrawn listbox aus verschiedenen Beispielen zusammen gestellt, um u.a. farbige Listboxeinträge mit verschiedenen Hintergrundfarben etc. darstellen zu können.

    Bei meinem Hauptbeispiel (http://www.codeproject.com/KB/combobox/listboxexByEricSanchez.aspx) werden eigene Scroll-Buttons gezeichnet. Ich würde aber gerne die vertikale standard Scrollbar benutzen. Wenn ich diese in den Eigenschaften der Ressource aktiviere, wird sie allerdings nicht angezeigt. Erst wenn ich mit der Mouse dahin klicke, wo sie sein müsste, wird sie sichtbar. Bei einem Redraw verschwindet sie wieder.

    Hat jemand eine Ahnung, wie ich die VScrollbar dauerhaft sichtbar machen kann?
    Ich würde ja spontan auf irgendwas in OnNcCalcSize() tippen, hab aber keine Ahnung und finde dazu auch nichts im Netz.

    Vielen Dank schonmal und Grüße,
    Sed



  • vielleicht mal hier schaun

    http://msdn.microsoft.com/en-us/library/1s0xed6b%28v=VS.80%29.aspx

    ob das bei ownerdraw genau so geht, weiss ich im moment net



  • SetHorizontalExtent?
    Bin mir nicht sicher, ob ich Dich richtig verstehe.
    Ich habe keine horizontale Scrollbar, nur vertikal.
    Und für VScrollbars gibts die Funktion leider nicht.


  • Mod

    Dan schmeiß doch das NCCalc zeugs raus...
    Vor allem auch das NCPaint...



  • Danke für Ideen!
    OnNcCalcSize nutze ich gar nicht (mehr).

    Ich habe jetzt durch trial n error herausgefunden, dass mit

    EnableScrollBar(SB_BOTH, ESB_DISABLE_BOTH);
    EnableScrollBar(SB_VERT, ESB_ENABLE_BOTH);
    

    in der OnNcPaint() die Scrollbars korrekt angezeigt werden. Erscheint mir fast wie ein Bug. Auf jeden Fall funktioniert es so, wie ich es gerne hätte.

    ein kleiner Nachtrag noch:
    Es haben sich noch ein paar weitere Probleme ergeben und da hat es sich, wie Martin Richter auch vorgeschlagen hat, als dienlich erwiesen, die OnNcPaint und OnNcCalcSize herauszunehmen.


Log in to reply