Problem mit CListBox



  • Ich habe nen Dialog, wo eine ListBox drin ist und will an einer Stelle den Eintrag, auf den Gerade der Mauszeiger zeigt auswählen (multiselection ist bei mir nicht erlaubt). Ich habs es so versucht:

    m_ctlList.SetCurSel(m_ctlList.ItemFromPoint(point, b)); // point beinhaltet die Mausposition und b ist eine BOOL-Variable
    

    Nachdem es nicht funktionierte, hab ich überprüft welche werte dabei entstehen, und es scheint, dass ItemFrom Point immer die Numer des aktuell ausgewählten Items zurückgibt, und nicht etwa die Nummer des Items, welches bei der Position von point ist. Weiß jemand, woran das liegt?



  • Also ich nehm mal an dass Deine Mauskoordinaten relativ zum Hauptfenster vorliegen. Dann musst du sie erst in die der Listbox umwandeln.

    hauptfenster->ClientToScreen( &point );
    listbox->ScreenToClient( &point );
    

    Ob die Funktionsmanem richtig sind weiß ich nicht, hab schon länger nix mit MFC gemacht.



  • Danke! 🙂


Anmelden zum Antworten