Kommunikation zwischen Registerblättern eines Eigenschaftfensters

kial75

Grünschnabel
[Visual C++], [MFC], VisualStudio .Net
Hallo Leute!
Hab eine dialogbasierte Anwendung mit Menü erstellt. Wenn ich einen Menüpunkt klicke öffnet sich ein Eigenschaftsfenster mit 3 Registern (habe ich mit Propertysheet und Propertypage gelöst) und auf diesen befinden sich die verschiedensten Controls. Nun möchte ich, wenn auf der ersten Seite ein bestimmter Radiobutton aktiviert wird, dass auf der 3. Seite ein Häckchen bei einem Kontrolkästchen gesetzt wird.
Habe schon alles mögliche probiert, bekomme jedoch immer die Meldung "illegal call of non-static function" bzw. bei einer 2. Implementierungsart stürzt das Programm ohne Vorwarnung immer ab. Siehe folgende Codezeile:

((CButton*)GetDlgItem(IDC_CHK_UL))->SetCheck(BST_CHECKED);

Diese Codezeile wird dann ausgeführt, wenn der Radiobutton gedrückt wird. Das Kontrollkästchen (IDC_CHK_UL) befindet sich auf der 3.Seite

Kann mir da jemand weiterhelfen, wie ich es schaffe das Häckchen zu setzen?
 
Das könnte mit
Code:
LRESULT CPropertyPage::QuerySiblings( WPARAM wParam, LPARAM lParam );
funktionieren. Damit sendest Du eine Nachricht an alle 'Geschwister' einer PropertyPage, die Du dann dort auswerten kannst. Ich hab's aber nicht ausprobiert.
Eine andere Möglichkeit wäre, über das Elternfenster (das müsste das PropertySheet sein) zu gehen und dort eine Variable zu setzen, die Du von der anderen PropertyPage auch wieder über GetParent auslesen kannst. Dazu mußt Du natürlich eine eigene Klasse von PropertySheet abgeleitet haben.

Grüße, jokey2
 
Zurück