Auf Propertypages die Labels dynamisch aendern
-
Hi,
Ich habe ein Problem:
Auf einem Propertysheet soll waehrend der Laufzeit ein StaticText einer Anderen Seite geaendert werden, wenn auf den Button einer anderen gedrueckt wird. Ich habe folgenden Code versucht:void CPropertypage1::OnSetLabels() { CMyPropertySheet* pParentSheet = (CMyPropertySheet*)GetParent(); CPropertypage1* pPage1 = (CPropertypage1*)pParentSheet->GetPage(0); pPage1->SetDlgItemText(IDC_STATIC1,"Good"); CPropertypage2* pPage2 = (CPropertypage2*)pParentSheet->GetPage(1); //Hier erhalte ich einen Assertion fault!!!! pPage2->SetDlgItemText(IDC_STATIC,"Good"); }Auch etliche andere Moeglichkeiten habe ich probiert, ich bekomme jedoch immer ein Assertion fault! Bin schon ziemlich am Ende

Freue mich auf eine Antwort.
-
Du kriegt den ASSERT, weil die Page gerade nicht angezeigt wird. Das ist so ähnlich wie vor oder nach DoModal auf Dialogelemente zuzugreifen. (Vermute ich mal.)
Schreib den neuen Text in eine CString Variable und dann kannst du den in OnShow der Page übertragen.
-
estartu_de schrieb:
Du kriegt den ASSERT, weil die Page gerade nicht angezeigt wird. Das ist so ähnlich wie vor oder nach DoModal auf Dialogelemente zuzugreifen. (Vermute ich mal.)
Schreib den neuen Text in eine CString Variable und dann kannst du den in OnShow der Page übertragen.
Das habe ich jetzt getan, funktioniert aber immer noch nicht!
Folgendes Problem:
void CPropertypage2::OnShowWindow(BOOL bShow, UINT nStatus) { CMyPropertySheet* pParentSheet = (CMyPropertySheet*)GetParent; CPropertypage2* pPage2 = (CPropertypage2*)pParentSheet->GetPage(1); //"pPage2" hat einen Wert(Pointer zu CWnd Objekt) CStatic* pStatic = (CStatic*)pPage2->GetDlgItem(IDC_STATIC); //An dieser Stalle hat "pStatic" keinen Wert erhalten, warum? pStatic->SetWindowText("Test"); }Beim debuggen wird klar, dass pStatic keinen Wert erhaelt!

Der Gleiche Code auf Propertypage1 funktioniert aber!
-
Hmm, IDC_STATIC ist ja auch eine besondere ID. Nimm mal eine andere. Es gibt ja oft mehrere IDC_STATICs - da weiß der bestimmt nicht, welches er nehmen soll.
-
Vielen vielen Dank,
jetzt geht es!
