TabControl erzeugen
-
find müsste in <algorithm> definiert sein. Einfach als Header einbinden.
-
Hallo phlox81,
Ich danke Dir. Jetzt kommen nur noch Warnungen wegen Typumwandlungen, aber die könnte man mit einem cast umgehen oder "abschalten".
Nochmals vielen Dank
Ranger
-
Hallo,
habe auch mit der Methode von Phlox ein TabControl erzeug, nur passiert nun beim Ausführen iommer folgender Fehler:
Das Programm startet ganz normal und an der Stelle, als es in den Dialog mit der TabCtrl springt, kommt folgende Meldung:
Create von "Identify"(der Name des Dialogs, der im Tab angezeigt werden soll)
fehlgeschlagen.
Das passiert dann bei allen Tabs.Kann mir da jemand weiterhelfen???
-
Hm, is ne weile her das ich die Klasse selber benutzt hab,
aber kanns sein das deine Dialoge den falschen Rahmen etc. haben?
Sie müssen Randlos sein, und sonst auch noch irgendwelche Einstellungen haben,
kann mich aber nicht genau daran erinnern.In wxWidgets ist das alles schon eingebaut
-
Was ist wxWidgets??
Sagt mir nichts.Die Dialoge sind randlos, ohne Menü, Untergeordnet usw. eigentlich ist alles ausgeschalten.
-
Benn85 schrieb:
Was ist wxWidgets??
Sagt mir nichts.Die Dialoge sind randlos, ohne Menü, Untergeordnet usw. eigentlich ist alles ausgeschalten.
Eine (bessere
) Alternative zur MFC. Ist auch Plattformunabhängig, benutzt aber native Steuerelemente.
Im Magazin hab ich schon zwei Artikel dazu geschrieben.
-
Hätte da noch eine Frage. Also bei mir sehen die Tabs bzw Fensterrand ziemlich bescheiden aus.
In der Dialogdemo siehts so aus:
http://img3.imagebanana.com/img/cq6onglb/DEMO1.jpg
Unter den Tabs eine dunkle Trennlinie und der Inhalt etwas heller.
Bei mir siehts so aus:
http://img3.imagebanana.com/img/tdj292di/DEMO2.jpg
Beim ersten Tab sieht man noch einen ansatz von dem schwarzen rand oben. Das ist aber nicht so schlimm, was mich eher stört ist das innere. Sprich der nach innen "gepresste" rand.
Wie kann man das so wie in der Demo bekommen?
-
Jetzt greife ich den Thread nochmals auf, da ich die Klasse auch gerade verwenden wollte.
Allerdings hat die Klasse Fehler zu genüge. Einige wurden ja schon im Thread teilweise beantwortet. Manche auch nicht.
Wann rufe ich z.B. InsertItem auf. Wenn ich es im Konstruktor aufrufe der Klasse die das Objekt von DynTabCtrl enthält liefert die Funktion einen Fehler. Grund: this wird beim Create als parent übergeben. this besteht aber zu dem Zeitpunkt noch nicht. Wenn ich es in InitDialog aufrufe, wird InsertItem ja jedes Mal aufgerufen wenn ich den Dialog anzeige. Der Dialog wird zwar nicht nochmals neu angelegt aber zur Liste neu hinzugefügt.
Im Destruktor wird, DestroyWindow() aufgerufen. Allerdings bestehen zu dem Zeitpunkt die Dialoge nicht mehr.
-
InitDialog wird doch nur einmal beim erzeugen deine Dialoges Aufgerufen, warum kannst du da die Inserts nicht machen, dafür ist doch die Funktion da um deinen Dialog zu initialisieren.
-
Es ist ein Unterdialog einer Applikation. Und OnInitDialog wird nun jedes mal aufgerufen wenn ich den Dialog über .DoModal aufrufe.
-
Du musst DestroyWindow gar nicht aufrufen und schon gar nicht im Destruktor!
Bei einem modalen Dialogpassiert hier alles "automatisch"!Dir muss klar sein, dass Du frühestens auf die Controls in einem alog zugreifen kannst wenn OnInitDialog gelaufen ist. D.h. nachdem Du DoModal aufgerufen hast!
-
Achso, klar. Die Klasse DynTabCtrl ist also nur für nicht modale Dialoge.
Was mich nun noch interessiert: Habe den Dialog mit den Tabs zur anzeige gebracht. Allerdings lassen sich die Controlls nicht bedienen. Woran liegt das?
-
Weil die Controls nicht enabled sind? Weil ein anderes Fenster im Vordergrund liegt?
Spy++ anwenden...
-
Und was ist wenn man den Dialog aber Modal haben will.
Habe bei mir das Destroy window rausgenommen. Aber wenn ich InsertItem mache. schlägt das Create fehl.
-
Weil die Controls nicht enabled sind? Weil ein anderes Fenster im Vordergrund liegt?
Controlls sind enabled. Und normalerweise sollte kein anderes Fenster im Vordergrund sein. Aber wo sehe ich das im Spy++
-
Wenn Du auf Fensterauswahl gehst und über die Controls drüber hoverst.
-
Ja das geht. Das heißt es liegt kein Fenster darüber. Woran liegts dann?
-
Und wie muss man die Klasse DynTabCtrl umbauen dass es für modale Dialoge auch geht?
-
Das gibt es doch nicht.
Habe mir die Klasse DynTabCtrl heruntergeladen und bin genau nach Anleitung vorgegangen. Es wird alles angezeigt, aber die Controlls lassen sich einfach nicht bedienen.
-
Oh Sorry. Habs rausbekommen. Habe als Vorlage Propertysheets genommen für meine Dialoge die sind standardmässig deaktiviert. Wieso auch immer. Habe nur auf die einzelnen Controlls geschaut.
Jetzt stellt sich für mich aber auch noch die Frage: Geht das ganze auch für Modale Dialoge?