Erstell eine Membervariable vom Type CButton für deinen Button und ersetze in der Headerdatei deiner Dialogklasse CButton gegen CXButtonXP.
Das ganze kannst du dir in der Testanwenung die dabei ist anschaun. und nicht vergessen die ganzen benötigten Dateien mit in dein Projekt aufzunehmen, die CXButtonXP benötigt.
Wobei ich ebend mitbekommen habe das der Themes bei Farbigen Text auch nicht macht, zumindest sieht das im Demo so aus, was aber noch zu überprüfen ist.
Zuletzt bearbeitet von CTecS am 02:51:48 03.04.2010, insgesamt 1-mal bearbeitet
na OnDrawItem brauchst du doch gar nicht und CButton m_Button; musst du in der headerdatei deines dialoges definieren.
Schau dir doch mal in dem Beispiel an wo er und vorallem wie er den CXButtonXP erstellt hat.
An sonnsten solltest du alles erstmal wieder rausnehmen, dann fügst du über die resourcenansicht auf deinen Button eine neue Membervariable ein (button ->rechte Maustaste) vom Type CButton, jetzt sollte eine CButton Variable n der Headerdatei deines Dialoges sein, den änderst du in CXButtonXP und vergisst nicht am anfang der headerdatei die klassen von CXButtonXP zu inkludieren. In der resourcenansicht den Button eventuell noch auf Ownerdraw stellen und in der InitDialog die farbe setzen, das sollte es gewesen sein.
okay, hab das jetzt alles soweit gemacht, bis auf das einfärben.
kannst du den befehl dazu nochmal posten, der einzige, der bei mir funktionierte, war der, für den ich ondrawitem benötigte...
zumindest scheint es soweit zu funktionierten, der button wird per ownerdraw jetzt im xpstyle gezeichnet, allerdings gibts eine fehlermeldung wegen einer der hinzugefügten dateien: "oddbutton.cpp"
wenn ich auf ignore klicke läuft es aber dennoch.
in der InitDialog kannst du die Farbe des Textes setzen, aber wie gesagt ob der dann den Themes Style im Hintergrund behällt weis ich auch nicht, das müsstest du ausprobieren.
Wegen dem Fehler, sollteste vielleicht mal die Fehlermeldung Posten, dann kann dir jemand helfen
in der InitDialog kannst du die Farbe des Textes setzen, aber wie gesagt ob der dann den Themes Style im Hintergrund behällt weis ich auch nicht, das müsstest du ausprobieren.
Wegen dem Fehler, sollteste vielleicht mal die Fehlermeldung Posten, dann kann dir jemand helfen
danke, aber du hast recht, wenn ich den button einfärbe dann ist das xptheme wieder entfernt...
ich schätze, das ganze lässt sich doch mit CTLCOLORBTN lösen, jedenfalls hab ich das gelesen. ich kapier diesen befehl allerdings nicht, kann mir mal bitte jemand ein beispeil dazu geben, wie es bei meinem fall anzuwenden ist?
in dem nachrichtenbehandlungsteil gibts ja nur ctlcolor zum hinzufügen, wie komm ich da jetzt zu ctlcolorbtn?
danke
CTLCOLORBTN ist kein Befehl sondern ein Flag was in OnCtlColor() gesetzt ist wenn die Nachricht von einem Button kommt. Besteht wiederum die Frage wie dich das weiter bringt, ich denke mal gar nicht.
aber warum kasperst du hier tagelang rum, in der zwischenzeit hättest du schon längst eine eigene Klasse abgeleitet von CButton schreiben können die das macht was du dir vorstellst. ich denk mal so schwer wird das nicht sein sich in die Materie mit den Windows Themes einzuarbeiten.
Wobei du ja eigentlich wenn du darüber nachdenkst, die Textfarbe nicht ändern kannst weil diese ja zum Thema dazu gehört. Als Beistpeil du nimmst jetzt ne grüne Farbe für den Text des Buttons was glaubst du was der User lesen kann wenn der ein grünes Thama eingestellt hat und dadurch der hintergrund auch grün ist. Wenn du nichts an der Farbe des Textes änderst wird auch beim umstellen des Themas die Farbe passen.
Also wenn das unbedingt sein muß das der Text bunt ist würde ich alle Buttons des Programmes ändern und einheitlich machen.
Zuletzt bearbeitet von CTecS am 13:41:33 04.04.2010, insgesamt 1-mal bearbeitet
Nächstes Thema anzeigen Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben. Sie können auf Beiträge in diesem Forum antworten. Sie können Ihre Beiträge in diesem Forum nicht bearbeiten. Sie können Ihre Beiträge in diesem Forum nicht löschen. Sie können an Umfragen in diesem Forum nicht mitmachen.
c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums
für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de
Werbekostenerstattung verdient werden kann.
Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de
enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt
(vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in
privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden.
Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere
übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.