TabControl liefert Stack Overflow...
-
Ich möchte in meinem Programm Tab Controls einbauen und habe mir dazu das Tutorial von http://www.codeguru.com/Cpp/controls/controls/tabcontrols/article.php/c5239/ durchgelesen und implementiert. Nur leider bringt er mir beim rekursiven Aufruf der Funktion OnLButtonDown (wenn ich auf ein anderes Tab klicke) einen Stack Overflow und das Programm hält an. Dies ist die Zeile im Code innerhalb der OnLButtonDown-Funktion:
CTabCtrl::OnLButtonDown(nFlags, point);Wenn ich die Zeile kommentiere geht's natürlich, leider kann ich dann aber (logischerweise) nicht zwischen den einzelnen Tabs hin- und herschalten. Das originale Demo funktioniert selbstverständlich. Wo könnte ich denn einen Fehler gemacht haben? Gibt es andere (einfachere?) Howtos irgendwo? Danke!
zony
-
naja bei rekursiven aufrufen ist es ja genau die gefahr das einem der stack üebrlaufen kann...
eventuell legst du grosse mengen speicher bei jedem rekursiven aufruf deiner funktion auf den stack... versuch mal (falls das der fall ist) den speicher mit new zu allokieren, vielleicht rettet dir das den stack
-
Nun, ich habe mich eigentlich genau an die Anleitung von dort gehalten und weiß nicht, was ich dagegen machen soll. Vielleicht kann sich ja jemand mal das Tutorial ansehen? Danke jedenfalls für deine Antwort!

zony
-
Hallo,
es gibt keinen rekursiven Aufruf dort (im Tutorial zumindest), es wird einfach die Basisklassen-Methode aufgerufen, mit Rekursion hat das nichts zu tun. Es kann also nur sein, daß durch deine Verarbeitung eine Rekursion stattfindet, die ist aber aus dem Tutorial mit Sicherheit nicht zu erkennen.
MfG
-
Au Backe, verdammt, das war der Fehler. Ich habe dort anstatt CTabCtrl CMyTabCtrl verwendet. Danke für den Hinweis!

zony
-
Ich habe nun für jedes Tab eine eigene Klasse und einen eigenen Dialog. Ich möchte aber im Hauptdialog eine Funktion starten, welche einige Felder, auf allen Tabs verteilt, aktualisiert. Wie mache ich das am Besten? Danke!
zony