CPropertySheet: wie kommt man an die IDs von den CPropertyPages
-
Hallo
Ich habe eine Dialogfeldanwendung und darin wird mittels eines CPropertySheets und mehreren CPropertyPages eine Tabliste realisiert. Nun möchte ich, sobald im CPropertySheet auf "OK" geklickt wird die Daten der CPropertyPages "einsammmeln" und dachte, dass ich dies mit den den IDs der Steuerelemente der CPropertyPages mache. Nur leider funktioniert dies nicht, weil lau GetLastError "die Kennung der Steuerelemente nicht gefunden wurde" Ich habe es per GetDlgItemText probiert und wollte nun nach Alternativen fragen. Ich hoffe, dass ich mich verständlich ausgedrückt habe.
chrische
-
Das Geheimnis
virtual BOOL CPropertyPage::OnApply( )liefert Dir der ClassWizard.
Gruss, Gio
-
Hallo
Ich habe das Problem jetzt anderweitig gelöst. Trotzdem habe ich keine Ahnung, wie deine Antwort bei meinem Problem helfen könnte und wäre über Aufklärung dankbar.
chrische
-
chrische5 schrieb:
Trotzdem habe ich keine Ahnung, wie deine Antwort bei meinem Problem helfen könnte und wäre über Aufklärung dankbar.
Ich habe keine Ahnung, was es an dem MSDN Eintrag zu OnApply nicht zu verstehen gibt.

-
Hallo
Und trotzdem habe ich keine Ahnung, wie man dann an die IDs kommt. Wie man auf den Tastendruck reagiert war nicht meine Frage.
chrische
-
In jeder Property-Page die OnApply() überladen. Wenn im Sheet "OK" oder "Übernehmen" geklickt wird, dann wird diese für jede Property-Page aufgerufen. Dort machst Du dann einen "UpdateData(..)" (oder wie auch immer Du die Daten handhabst), und gut.
Wo liegt das (Verständis-)Problem

Gruss, Gio
-
Was willst Du denn jetzt?
chrische5 schrieb:
Nun möchte ich, sobald im CPropertySheet auf "OK" geklickt wird die Daten der CPropertyPages "einsammmeln"
oder
chrische5 schrieb:
wie man dann an die IDs kommt
???????
Ich vermute mal, Du hast versucht aus dem CPropertySheet auf die Resource-IDs aus den CPropertyPages zuzugreifen. Da reicht ein einfaches GetDlgItemText() natürlich nicht, da das ja auf die IDs der Controls des CPropertySheets zugreift. Zum "Einsammeln" der Daten hättest Du per CPropertySheet::GetPageCount() und CPropertySheet::GetPage() durch die CPropertyPages iterieren müssen und ein GetPage()->GetDlgItemText() hätte dann wahrscheinlich auch funktioniert. Das habe ich aber selbst nicht ausprobiert, denn ich benutze OnApply() um Daten aus den Pages zu persistieren.
-
Hallo
jencas schrieb:
Was willst Du denn jetzt?
chrische5 schrieb:
Nun möchte ich, sobald im CPropertySheet auf "OK" geklickt wird die Daten der CPropertyPages "einsammmeln"
oder
chrische5 schrieb:
wie man dann an die IDs kommt
???????
Ich vermute mal, Du hast versucht aus dem CPropertySheet auf die Resource-IDs aus den CPropertyPages zuzugreifen. Da reicht ein einfaches GetDlgItemText() natürlich nicht, da das ja auf die IDs der Controls des CPropertySheets zugreift. Zum "Einsammeln" der Daten hättest Du per CPropertySheet::GetPageCount() und CPropertySheet::GetPage() durch die CPropertyPages iterieren müssen und ein GetPage()->GetDlgItemText() hätte dann wahrscheinlich auch funktioniert. Das habe ich aber selbst nicht ausprobiert, denn ich benutze OnApply() um Daten aus den Pages zu persistieren.
Du hast das Problem genau erkannt. Wie gesagt, vielleicht habe ich mich etwas umständlich ausgedrückt. Ich habe es nun über Memberfunktionen der einzelnen Pages gemacht, die aufgerufen werden, sobald auf dem Sheet OK geklickt wird.
Vielen Dank für eure Hilfe.
chrische