Benutzerdefinierte Listbox
-
Hallo,
mein Problem ist folgendes :Programmiert hab ich mit Visual c++.
Ich will eine Listbox um einige funktionen erweitern, dazu habe ich vor die Klasse Listbox eine andere gestellt die mir diese funktionen erweitert.Diese Listbox kann nun die Farbe der Einträge ändern und wählt automatisch den Listeneinrag aus wenn der Mauszeiger darüber ist.
(CColorlistbox von www.codeguru.com/Cpp/controls/listbox/colorlistboxes/article.php/c1611/ )Meine Erweiterung :
class CColListBox : public CListBox
{
//{{AFX_MSG(CColListBox)
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
//}}AFX_MSG
}void CColListBox::OnMouseMove(UINT nFlags, CPoint point)
{
int a, b;
b = point.y / 13; // Indexberechnung
a = this->SetCurSel(b);
CWnd::OnMouseMove(nFlags, point);
}In meinem Hauptprogramm sind immer 3 Listboxen nebeneinander
Listbox Listbox Listbox
Problem 1:
Ändert sich nun die Auswahl einer ListBox so sollen bei den anderen auch
die entsprechenden Einträge je nach Index Ausgewählt werden.Ich habe es mit dem Ereignis OnSelChange() versucht, doch leider reagiert
dieses Ereignis nur dann wenn man explizit einen neuen Eintrag mit der Maus anklicke.void CTalent1::OnSelChangeEbeWi()
{
int a = m_ctleBE_Wi.GetCurSel();
m_ctlTaW_Wi.SetCurSel(a);
m_ctlPreis_Wi.SetCurSel(a);
}Die Funktion SetCurSel wählt wohl nur Optisch einen neuen Eintrag aus und das Ereignis OnSelChange bekommt davon nichts mit

Kann mir jemand helfen dies zu Realisieren ?
Problem 2:
Ich hätte gerne auch noch ein Ereignis von den Listboxen ob eine und
welche Maustaste gedrückt wurde.Hat jemand eine Ahnung wie man einer Listbox ein Ereignis hinzufügt ?
Es stehen ja nur 6 Ereignisse zur verfügung.
LBN_SELCHANGE
LBN_DBLCLK
LBN_ERRSPACE
...Ich bräuchte sowas wie LBN_RBUTONDOWN und LBN_LBUTONDOWN
Die Funktion WM_RBUTONDOWN gibts ja auch aber funktioniert leider nur im HauptdialogDanke schonmal für die Hilfe
