Mehrfachvererbung
-
Mein Dialogfeld muss von zwei Klassen erben welche beide im Endeffekt von CWnd abgeleitet sind.
Dachte mir das geht schon mit:
class CMyDialog: virtual public CDialog, virtual public CSupportClassoder so ähnlich.
Zur Übersicht ist das hier meine Vererbungsstruktur: http://www.gayfiles.de/cpp/inherit.jpg
Ich möchte Zur Laufzeit der Applikation nur ein CWnd-Objekt haben worauf das Dialogfeld aufbaut, welches aber von beiden "Strängen" in der Vererbungsstruktur benutzt werden kann.
Gruß,
Marco
-
Du willst also Methoden von CShared und CSupportClass in deinem Dialog verwenden können?
Wo ist das genaue Problem?
-
Vergiss diese Art von Mehrfachvererbung mit der MFC. Das funktioniert nicht, weil die Nachrichten immer nur in eine Linie von Kind zu Elternklasse weitergegeben wird.
Es gibt nur Chaos wenn man solche Mehrfachvererbungen versucht. Im Codeproject gibt es dau ein paar Ansätze. Ich habe niemals eine wirklich gute Implementoerung gesehen.Evtl. wirst Du mit einem Template Ansatz glücklicher.
Oder verusche das ganze in funktionelle Interfaces zu packen.
-
Geht so nicht, dazu müßten bereits CDialog und CSupportClass virtuell erben, und CDialog macht das nicht.
Du hast ein paar Möglichkeiten, die sind aber alle nicht so berauschend.
Was soll CSupportClass denn so machen?(bitte korrigier' mal den Tippfehler in deinem Titel, ich krieg sonst noch 'nen Anfall, und da willst Du nicht dabei sein..)
-
So, Titel korregiert.. sah ja wirklich unschön aus

Die Support Class sollte Drag&Drop unterstützen. Ich habe das zur Zeit anders gemacht, aber fand ich etwas unschön, desswegen wollte ich das ein bischen Umbauen und mit der Vererbung rumprobieren.
Hmm, wenn das nur unschön möglich ist... das hab ich schon
