000
21.11.2005, 15:02 Uhr
~maxpower24
Gast
|
Hallo,
ich fange gerade an, mich in MFC zurechtzufinden und hab da mal ne Frage zur Softwarearchitektur:
Also, ne MFC-Anwendung zu schreiben, scheint ja recht simpel zu sein. Ich hab ne Dialogbasierte Anwendung geschrieben, deren Dialog einen TreeControl besitzt. Ich hab da ein paar TreeItems eingefügt und mit dem Klassenassistent hab ich die Ressource-ID des TreeControls mit einem Ereignis verknüpft. In der der entstehenden Funktion, lass ich dann den Text des selektierten Knotens ausgeben...
Soweit, so gut...was mich daran stört ist folgendes. Wenn man mit dem Klassenassi die TreeControl mit dem Ereignis verbindet, dann entsteht die Ereignismethode in der Dialogklasse - das ist doch blöde, da jetzt die Dialogklasse nicht nur GUI-zeugs beinhaltet, sondern auch Programmlogik!!!
Ich will es so haben, dass in der Dialogklasse wirklich nur die GUI-Komponenten drin sind. Für diese würde ich Membervariablen und getter() schreiben. Dann würde ich eine Controller-Klasse schreiben, die Zugriff auf den Dialog hat. Jetzt müßte man es irgendwie mit dem Klassenassi hinbekommen, dass man das Ereignisse des TreeControls mit Funktionen der Controllerklasse gemapt werden...aber das geht irgendwie nicht...überhaupt sind manuell erstellte Klasse gar nicht im Klassenassistent auswählbar....
Also hier die Fragen: *************** 1) WIE KANN MAN VIEW und VERHALTEN voneinander trennen??? Oder ist das in MFC gar nicht erwünscht???
2.) Gibt es in der MFC-Welt ein Pendant zu den Listenern aus der Javawelt??? Da würde ich ja einfach einen TreeSelectionListener am Tree registrieren???
Vielen Dank |