Laden...

ownerdraw combobox (nicht die items sondern allg)

Erstellt von sth_Weird vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.855 Views
S
sth_Weird Themenstarter:in
469 Beiträge seit 2007
vor 15 Jahren
ownerdraw combobox (nicht die items sondern allg)

Hallo,

bin auf der Suche nach einem guten Beispiel für eine Ownerdraw ComboBox.
und zwar !wichtig! will ich nicht die Auswahl die nach unten klappt ändern (wie das geht, da hab ich ettliche Beispiele gefunden und auch selbst schon implementiert).
Nein, ich hätte gerne einen runden Rand um das Control, oder einfach eine andere Farbe.
Dazu habe ich gedacht ich leite von der ComboBox ab und überschreibe das OnPaint, zeichne dann das Control wie vorgesehen (base.OnPaint(e)), und danach einfach einen Rand außenrum (also als ganz triviales Beispiel mal ein DrawRectangle() mit den Bounds des Controls). Aber man sieht leider garnichts, die ComboBox sieht so aus wie immer 😦
Was mach ich falsch kennt jemand ein gutes Beispiel wie man die ComboBox optisch anpassen kann?

thx
sth_Weird

++++++++++++++++++++~+
Fluchen ist die einzige Sprache, die jeder Programmierer perfekt beherrscht


Linux is for free...if your time is worth nothing
++++++++++++++++++++~+

313 Beiträge seit 2006
vor 15 Jahren

Bloede Frage...wieso nicht einfach ein "rotes"rechteck druntermalen oder verstehe ich deine frage falsch

X
2.051 Beiträge seit 2004
vor 15 Jahren

ich würde versuchen die WndProc zu überschreiben, und dort zu zeichnen.

S
sth_Weird Themenstarter:in
469 Beiträge seit 2007
vor 15 Jahren

@Ploetzi: da kann ich auch sagen: Bloede Antwort. Mit DrawRectangle() hab ich ja genau das versucht aber ich seh ja nichts.
Abgesehen davon (aber beim Durchlesen meines Postings hab ich gemerkt dass man das durchaus missverstehen kann) war das nicht das was ich gesucht hab, ich will keinen Rand um den Rand (das hab ich eigentlich im ersten Schritt nurmal so zum Probieren ob ich überhaupt was gezeichnet krieg gemacht), sondern die Farbe des Randes anders haben.

Nein, ich hätte gerne einen runden Rand um das Control, oder einfach eine andere Farbe.

@Xpgene: damit kenn ich mich überhaupt nicht aus. Gibt es nichts einfacheres (ich habe meinen Rand auch auf einen Button gezeichnet, dort einfach im OnPaint, und hat super getan, ohne WndProc).
Beim Debuggen ist mir aufgefallen, dass das OnPaint der ComboBox anscheinend garnicht aufgerufen wird (Breakpoint wurde nie angesprungen)???

gruß
sth_Weird

++++++++++++++++++++~+
Fluchen ist die einzige Sprache, die jeder Programmierer perfekt beherrscht


Linux is for free...if your time is worth nothing
++++++++++++++++++++~+

313 Beiträge seit 2006
vor 15 Jahren

bzgl. "Bloede Frage"/"Bloede Antwort", ich wollte dich nicht irgendwie falsch anfragen,..sondern dachte nur vl. ist es so easy.
und "bloede frage" weil ich mir dachte, das wird schon nicht so easy sein....

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo sth_Weird,

Beim Debuggen ist mir aufgefallen, dass das OnPaint der ComboBox anscheinend garnicht aufgerufen wird

ich würde mal auf ControlStyles.UserPaint tippen:

Wenn true, zeichnet sich das Steuerelement selbst, sodass es nicht vom Betriebssystem gezeichnet werden muss. Wenn false, wird das Paint-Ereignis nicht ausgelöst. Dieser Stil wird nur auf von Control abgeleitete Klassen angewendet.

herbivore