CMenu abgeleitete Klasse: CustomDraw funktioniert nicht
-
ich habe mir eine Klasse von CMenu abgeleitet. Bei der programmierung des ganzen menüs habe ich mich an einer klasse von CodeProject.com orientiert, daher sollte es eigentlich klappen.
aber das ist leider nicht so.
ich füge möcht einen eintrag folgendermaßen einfügen:
void CUGMenu::SetServerTime(UGServerTime *uServerTime) { this->uServerTime = uServerTime; InsertMenu(0, MF_BYPOSITION | MF_OWNERDRAW | MF_STRING | MF_DISABLED, MI_SERVER_TIME); }
MI_SERVER_TIME ist die id die ich im header deklariert habe.
die strukturen sind unwichtig, es kommt eigentlich nur auf die zeile 'InsertMenu()' an.
MeasureItem() und DrawItem sind überladen. trotzdem wird der haltepunkt beim debugen, den ich zum testen gesetzt habe, nicht erreicht !?
kann sich jemand einen reim drauf machen?
-
Und wie hast Du dieses Menü erzeugt und verwendet? D.h. wie hast Du dem Framewindow mitgeteilt dieses Dein Menu von diesem speziellen Typ ist?
-
Und noch was wüsste ich gerne. Welcher Haltepunkt? Du sagst der Haltepunkt wird nicht erreicht, doch wohin hast du ihn gesetzt? Also wohin kommt denn das Programm nicht?
Grüssli
-
ich weis jetzt woran es lag:
Ich lade ein Menü von einer resource. dann wird das submenu 0 über GetSubMenu() geholt und angezeigt.
ich habe das von dieser funktion zurückgegebene CMenu-objekt einfach in meine menü-klasse gekastet, was natürlich nicht geht -.-
jetzt habe ich eine frage:
kann man Über GetSubMenu() auch ein Menü-objekt erzeugen lassen welches dann von meiner klasse ist ? oder es wirgendwie konvertieren o.ä.?ich kann das menü auch im programm selbst erstellen mit AppendMenu() usw. aber einfacher ist es natürlich das menü von einer resource zu laden
EDIT:
Sorry, hat sich erledigt. erst ausprobieren, dann fragen. Siehe Attach() ...