Hallo zusammen,
ich habe mir ein eigene Tabellenklasse geschrieben, die von CListCtrl abgeleitet ist. In einigen Zellen, werden dynamisch Comboboxen angelegt.
Das klappt auch alles wunderbar.
Das Problem:
Ich möchte jetzt, in den Comboboxen nicht nur ein paar Texte zur Auswahl stehen haben, sondern ich möchte auch noch, dass eine Zeile editierbar ist.
Jetzt wollte ich, soblad die entsprechende Zelle in der Box selektiert ist, mir das entsprechende Fenster holen und es zu einem Cedit casten.
Sähe im Prinzip so aus:
void CMyComboBox::OnSelchange()
{
CEdit* pEdit = (CEdit*)GetWindow(<Nummer>);
pEdit->SetReadOnly(GetCurSel() != 0);
}
Hier würde ich also immer die Zeile nur schreibbar machen, aber das mit dem GetWindow funktioniert nicht. Er bekommt keine gültigen pEdit Pointer zurück. Die Frage ist, was muss ich für eine Fensternummer bei GetWindow() angeben.
Oder gibt es vielleicht andere Lösungvorschläge.
Danke,
Topsen
ich habe mir ein eigene Tabellenklasse geschrieben, die von CListCtrl abgeleitet ist. In einigen Zellen, werden dynamisch Comboboxen angelegt.
Das klappt auch alles wunderbar.
Das Problem:
Ich möchte jetzt, in den Comboboxen nicht nur ein paar Texte zur Auswahl stehen haben, sondern ich möchte auch noch, dass eine Zeile editierbar ist.
Jetzt wollte ich, soblad die entsprechende Zelle in der Box selektiert ist, mir das entsprechende Fenster holen und es zu einem Cedit casten.
Sähe im Prinzip so aus:
void CMyComboBox::OnSelchange()
{
CEdit* pEdit = (CEdit*)GetWindow(<Nummer>);
pEdit->SetReadOnly(GetCurSel() != 0);
}
Hier würde ich also immer die Zeile nur schreibbar machen, aber das mit dem GetWindow funktioniert nicht. Er bekommt keine gültigen pEdit Pointer zurück. Die Frage ist, was muss ich für eine Fensternummer bei GetWindow() angeben.
Oder gibt es vielleicht andere Lösungvorschläge.
Danke,
Topsen