CCtrlList Subitem bestimmen



  • Hallo

    wie bestimme ich, welche Spalte ich gerade clicke

    ich habe eine Funktion, welche auf doppelclick reagiert

    jetzt möchte ich was in dieser art haben

    int pos = m_listbox.GetSubItemPos();
    
    if( pos == 1 )
    {
    //mache das
    
    }
    

    kann ich das SubItemHitTest verwenden? wenn ja wie? oder gibts da was besseres?



  • GetSelectionMark();



  • da habe ich die row ( zeile ) in der kann ich ja mehrere spalten haben )

    wie bekomme ich raus, welche von denen?

    irgendwie ein CPoint bestimmen der zeile und dann ausrechnen?



  • oh, sorry.. da hab ich mich verlesen 🙂

    Du kannst aber die ColumnWidth auslesen und anhand der Info
    übern CPoint feststellen welche Spalte geklickt wird.

    Aber dann musst du abschalten, das User sich die Spalten selbst
    vertauschen können, da der Zugriff auf das SubItem immer gleich bleibt
    egal wohin die Spalte geschoben wurde.
    Geänderte Spaltenbreiten sollten kein Problem darstellen, die kannste
    ja bei jedem Klick auslesen..

    edit: Die aktuelle Spaltensortierung könnteste evtl. über die
    Spaltenbeschriftungen bekommen..



  • ne ne die spalten werden bei mir nicht verschoben 😉

    ja die width und alles ist klar. aber wie bekomme ich den CPoint der momentanen pos raus? ich rufe ja die dblclickonmylistbox() funktion auf. da müsste ich ja schon den cpoint übergeben, damit ich ihn in der funktionbenutzen kann`? oder kann ich trozdem ein

    m_listbox.GetMouseClick(&pt); machen?

    wie heisst die funktion eigentlich, die ich ja meiner m_listbox zuordnen muss.


Anmelden zum Antworten