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!


Anmelden zum Antworten