tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
17
ZUGRIFFE
953
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    LordTerra LordTerra ist offline Mitglied Bronze
    Registriert seit
    Jul 2007
    Beiträge
    31
    hi

    hab da mal ne frage : ich will bei einer per hand erzeugten CListBox den vertikalen Scrollbalken aktivieren... (am liebsten nur wenn es notwendig ist)

    wie bekomm ich das hin?

    Meine ListBox
    Code:

    Code :
    1
    2
    3
    4
    
    CListBox * textBox = new CListBox();
    textBox->Create( WS_BORDER | WS_CHILD | WS_VISIBLE | WS_VSCROLL, CRect(50,250,1230,900), this, 1 ) ;
    textBox->ShowWindow(1);     
    Code:

    also das problem ist: es wird eine Scrollbar angezeigt, aber ich kann weder die Steuerelemente (pfeil hoch / runter) benutzen noch per mausrad usw scrollen

    wie kann ich das beheben ?

    mfg LT
    Geändert von LordTerra (25.10.10 um 10:28 Uhr)
     

  2. #2
    Avatar von Endurion
    Endurion Endurion ist offline Mitglied Diamant
    Registriert seit
    Apr 2004
    Beiträge
    2.151
    Eigentlich sollte die Listbox das automatisch so machen. Geh mal mit dem Spy++ drüber und sieh nach, ob LBS_DISABLENOSCROLL gesetzt ist.

    Wenn ja, dann nach dem Erstellen das Style-Flag mit ModifyStyle entfernen.
     

  3. #3
    LordTerra LordTerra ist offline Mitglied Bronze
    Registriert seit
    Jul 2007
    Beiträge
    31
    wie entferne ich das Style - Flag mit dem ModifyStyle****?

    ich hatte auch schon mal beim create LBS_DISABLENOSCROLL gesetzt hat gar nix gebracht ...
    und was is Spy++?

    thx LT
     

  4. #4
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Hallo, kannst du überhaupt irgendwas mit der Listbox machen, also z.B. Einträge selektieren?

    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  5. #5
    LordTerra LordTerra ist offline Mitglied Bronze
    Registriert seit
    Jul 2007
    Beiträge
    31
    im moment nicht nein
     

  6. #6
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Dann scheint die Listbox gar nicht aktiviert zu sein. Versuche mal, ob sich was ändert, wenn du bei Create noch den Style LBS_STANDARD ergänzt.

    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  7. #7
    LordTerra LordTerra ist offline Mitglied Bronze
    Registriert seit
    Jul 2007
    Beiträge
    31
    du meinst so:

    textBox->Create( WS_BORDER | WS_CHILD | WS_VISIBLE | WS_VSCROLL | LBS_STANDARD, CRect(50,250,1230,900), this, 1 ) ;

    ?

    werd ich morgen früh mal ausprobieren
     

  8. #8
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Zitat Zitat von LordTerra Beitrag anzeigen
    du meinst so:

    textBox->Create( WS_BORDER | WS_CHILD | WS_VISIBLE | WS_VSCROLL | LBS_STANDARD, CRect(50,250,1230,900), this, 1 ) ;
    Ja, so meine ich das.
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  9. #9
    LordTerra LordTerra ist offline Mitglied Bronze
    Registriert seit
    Jul 2007
    Beiträge
    31
    hi

    habs getestet ...
    geht immer noch net

    was könnte es noch sein ?

    mfg LT
     

  10. #10
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Zitat Zitat von LordTerra Beitrag anzeigen
    was könnte es noch sein ?
    Gute Frage

    An welcher Stelle in deinem Programm erzeugst du denn die Listbox (Create) ?

    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  11. #11
    LordTerra LordTerra ist offline Mitglied Bronze
    Registriert seit
    Jul 2007
    Beiträge
    31
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
     
    CListBox * textBox; 
    ...
    ...
    int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct){
    ...
    ...
        textBox = new CListBox();
        textBox->Create( WS_BORDER | WS_CHILD | WS_VISIBLE | WS_VSCROLL | LBS_STANDARD, CRect(50,250,1230,900), this, 1 ) ;
        textBox->ShowWindow(1);
    ..
    ..
    }

    so erzeuge ich ihn
     

  12. #12
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Hallo,

    an der Erzeigung der Listbox kann's eigentlich nicht liegen - die ist ok. Da muss irgendwas anderes an an dem Projekt nicht passen. Lege doch mal ein einfaches SDI-Testprojekt und probiere nur den Listbox-Code dort aus. Das habe ich gerade gemacht und das funktioniert prima.

    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  13. #13
    LordTerra LordTerra ist offline Mitglied Bronze
    Registriert seit
    Jul 2007
    Beiträge
    31
    moin

    http://www.argus-sensorsysteme.de/download/Test.zip

    hab da einfach mal ein Testprojekt erstellt ...
    es ist ein Microsoft Visual C++ 6.0 Projekt...

    also bei mir geht das auch nicht ...

    vielleicht findest du da den fehler

    dank dir LT
     

  14. #14
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Ein Doc/View-Projekt hatte ich natürlich nicht erstellt Da geht's nämlich so nicht.
    Die Erzeugung im MainFrame ist der falsche Ort, du musst das im View erledigen. Füge mit dem Klassenassistenten ein "CTestCListBoxView::OnInitialUpdate()" hinzu und füge den Code dort ein.

    Gruß
    MCoder
    LordTerra bedankt sich. 
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  15. #15
    LordTerra LordTerra ist offline Mitglied Bronze
    Registriert seit
    Jul 2007
    Beiträge
    31
    CTestCListBoxView::OnInitialUpdate() hab ich erzeugt ...

    so und nu musste mir n bissi helfen:
    ich soll die
    CListBox * textBox;
    in der View erstellen ?
    also diese zeilen:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    CListBox * textBox; 
     
    void CTestCListBoxView::OnInitialUpdate() 
    {
        CView::OnInitialUpdate();
     
        textBox = new CListBox();
        textBox->Create( WS_BORDER | WS_CHILD | WS_VISIBLE | WS_VSCROLL | LBS_STANDARD, CRect(50,250,1230,900), this, 1 ) ;
        textBox->ShowWindow(1);
     
        
        // TODO: Speziellen Code hier einfügen und/oder Basisklasse aufrufen
        
    }
    ?

    da gleich 2 fragen:
    - wie soll ich dann in der CMainFrame darauf zugreifen ?
    - Müsste ich also nicht die CListBox irgendwie global deklarieren?

    mfg LT
    +
     

Ähnliche Themen

  1. Rechtsklick bei CListBox
    Von joerg1337 im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 11.12.08, 20:57
  2. Scrollbalken aktivieren
    Von notebook20000 im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 30.03.07, 01:10
  3. CListBox Strg+Doppelklick
    Von gehrti im Forum VisualStudio & MFC
    Antworten: 2
    Letzter Beitrag: 09.08.05, 15:00
  4. CListBox
    Von gehrti im Forum VisualStudio & MFC
    Antworten: 1
    Letzter Beitrag: 09.06.05, 22:39
  5. CListBox: Darstellung aktualisieren
    Von Palador im Forum VisualStudio & MFC
    Antworten: 6
    Letzter Beitrag: 11.05.05, 16:27