CMyWnd::ShowScrollBar( SB_VERT )



  • Ich hab mir ein Steuerelement entwickelt, welches ähnlich einer Listbox arbeitet. Also die ganze verwaltung von hand (das brauch ich so). Nun weiß ich nicht wie ich in das wnd eine ScrollBar anzeigen kann.

    Ich hab schon die range und pos gesetzt, aber er zeigt kein ScrollBar.



  • Ich brauche ine eigende ListBox da ich unter winCE nicht unendlich speicherplatz habe, aber ca. 60000 einträge für die ListBox habe.
    Also hab ich mir eine ListBox erstellt welche sich von der Anwendung nur die Zeichenketten holt die in die ListBox passen ... .
    Das funktioniert auch sehr gut, nur weiß ich nicht warum die ScrollBar nicht angezeigt wird.

    Mit diesen Methoden funzt es nicht:

    SetScrollRange(SB_VERT, 1, 100);
        SetScrollPos(SB_VERT, 10);
        ShowScrollBar(SB_VERT);
    

    Oder muß ich ein Style setzen oder löschen (welches) ???

    Danke für eure Hilfe !!!



  • 1. Hm, bist Du wirklich sicher, dass eine eigene ListBox weniger Speicher verbraucht als API?
    2. Wenn Du die Einträge selber in einer Liste haben willst, ohne das die API das verwaltet, nimm doch ein ListCtrl mit Callback-Items!

    3. Falls Dich das noch immer nicht überzeugt, P.S. Deine ListBox muss den Style WS_VSCROLL besitzen!

    [ Dieser Beitrag wurde am 23.10.2002 um 08:26 Uhr von RenéG editiert. ]



  • Original erstellt von RenéG:
    **
    2. Wenn Du die Einträge selber in einer Liste haben willst, ohne das die API das verwaltet, nimm doch ein ListCtrl mit Callback-Items!
    **

    Gut ich versuche es noch mal, aber ich hab schon wieder Probleme.

    - wie mache ich der ListBox 10.000 Einträge bekannt (ohne AddString("...") ) ?
    - DrawItem(...) hab ich beerbt, aber bei den AddString- Strings springt er dort nicht hin ?!



  • Also ich hab es für !winCE hinbekommen.
    Nur leider wird PreCreateWindow & DrawItem bei winCE nicht angesprungen und damit kann ich die CListBox vergessen.



  • Ich kenn die CE-Unterstützung net! Unterstützt es etwa kein LVS_OWNERDRAWFIXED?

    Apropos PreCreateWindow .. das müsste auf jeden Fall angesprungen werden!



  • Original erstellt von RenéG:
    **Ich kenn die CE-Unterstützung net! Unterstützt es etwa kein LVS_OWNERDRAWFIXED?

    Apropos PreCreateWindow .. das müsste auf jeden Fall angesprungen werden!**

    Genau das ist mein Problem ;-).
    Er kennt LVS_OWNERDRAWFIXED erst durch das includen eines headers (also weiß ich nicht ob es richtig unterstützt wird) und er springt PreCreateWindow definitiv nicht an !!!

    Ich hab div. Steuerelemente getestet und festgestellt das alle virtuellen Methoden von CWnd nicht genutzt werden.

    Also doch alles selber machen ;-).



  • Naja, is doch net soo schlimm, wenn PreCreateWindow übersprungen wird, das kann man anders nutzen!
    Wo ist das Problem, den Header zu inkludieren, wo LVS_OWNERDRAWFIXED drin steht?

    P.S. ListControl ist sehr schnell und mit Unterstützung von OWNERDATA brauchts auch nur wenig Speicher



  • Bei ListCtrl ist das gleiche problem.
    Ich hab den style mit modifystyle gesetzt, ohne erfolg.


Anmelden zum Antworten