CWnd* der Controls ermitteln
-
Wie ermittel ich den CWnd* aller Fenster in meinem Dialog ?
Also auch die Fenster in einem Fenster. (z.B die Elemente eines Trees oder die Spaltenüberschriften einer Listbox usw)
-
Elemente eines Trees und Spaltenüberschriften sind keine CWnd -> da sind völlig verschiedene Fragen!
Ausserdem hat ne Listbox keine Spaltenüberschriften
-
CWnd* pWnd=pWndDlg->GetWindow(GW_CHILD);
do
{
pWnd=pWnd->GetNextWindow();
}while( pWnd!=NULL );
}
-
Bei der Listbox kann man diesen Reporter-Style übergeben, dann hat sie sehr wohl überschriften. Ich dachte immer das alle Tree-Elemente, Column-Headers der oben erwähnten Listboxen usw eigene Fenster sind die man ermitteln kann...
Hm...
Also folgendes ist mein Problem:
Ich habe einen Dialog, dessen Steuerelement-Typen ich nicht kenne. Ich will jetzt alle Text-Elemente daraus auslesen (Bei Buttons, Edit-Feldern etc is das natürlich sehr einfach). Allerdings bekomm ich den Text von z.B Tree-Elementen nicht so einfach da der Tree ja eigene Funktionen dafür besitzt die nicht zu CWnd* gehören (GetItemData, etc). Ich weiss im Augenblick des Auslesens der Controls aber nicht ob es sich um einen Tree, einen Button oder sonstwas handelt
Das dient für die Englisch/Deutsch übersetzung eines Dialoges. Ich will erst alle Controls auslesen die Text beinhalten und diese Elemente dann auflisten
-
C++ erwartet EINDEUTIGKEIT
Und Listboxen haben nicht und hatten nie einen Reporter-Style !
Denn
1. sind das dann ListCtrls und
2. heisst der Stil LVS_REPORT und nicht LVS_REPORTER !Zu Deinem Problem:
Mit GetClassName kannst Du ermitteln, um welchen Typ Fenster es sich handelt, und demnach die entsprechenden Routinen auswählen!
-
Oh, da hab ich mich wohl vertaaaan
Danköö dann erstmal dafür!