Stolzi hat geschrieben:Das wäre ziemlich umständlich wenn ich nur wegen Windows SetClientdata() für Listboxes nicht verwenden könnte
Hallo Stefan!
Du könntest die ClientDaten in einer Liste speichern. Das macht auch nicht mehr Arbeit als die Verwendung von SetClientData. Du brauchst nur den Index der aktuell markierten Zeile auch als Index für den Zugriff auf die Liste heran ziehen.
Stolzi hat geschrieben:Aber ist mir irgendwie undirekter und eher als workaround vorgekommen.
Ist es auch.
Mach nen Post auf in der wx Mailingliste und spreche das mit den Devs ab. Riecht für mich nach ein Bug-Ticket, das man absetzen sollte; aber vorher an die Mailingliste wenden.
#if wxUSE_OWNER_DRAWN
if ( m_windowStyle & wxLB_OWNERDRAW )
{
// client data must be pointer to wxOwnerDrawn, otherwise we would crash
// in OnMeasure/OnDraw.
wxFAIL_MSG(wxT("Can't use client data with owner-drawn listboxes"));
}
#endif // wxUSE_OWNER_DRAWN
if ( ListBox_SetItemData(GetHwnd(), n, clientData) == LB_ERR )
wxLogDebug(wxT("LB_SETITEMDATA failed"));
}