bs_ownerdraw Problem

Hallasas

Erfahrenes Mitglied
Hallo Community !
Nach zwei Tagen ohne jegliches Ergebnis, habe ich mich dazu entschieden, euch mal zu fragen...

Ich erstelle meine Buttons mit dem Style "bs_ownerdraw" und handle auch auf "wm_drawitem".
Ich "lade" auf meine Buttons sogleich Bitmaps, was mir leider nur bei zwei "statements" gelingt:
Code:
//...
if ( drwstrc->itemState & ODS_SELECTED )
// Hier lade ich das "selected"-Bitmap
else
// Und hier das für den normalen Status

Nun möchte ich gerne wissen:
Wie kann ich auf weitere "statements" reagieren ( z.B. ods_focus ) ?
Und wie kann ich den Text auf den Buttons wieder "sichtbar" machen ( oder bzw. neu Anzeigen lassen ) ?

Ich freue mich über eure Hilfe.
Gruß Hallasas
 
Da hilft nur selbst zeichnen. Ownerdraw ist entweder alles oder nichts. Das teilweise Zeichnen gibt's erst ab XP mit NM_CUSTOMDRAW. Dann muß aber der Style BS_OWNERDRAW wieder weg.

Ein Focus-Rectangle zeichnest du mit DrawFocusRect, den Text mit DrawText oder TextOut.
 
Vielen Dank für deine Antwort !
Ok, also muss ich das mit "NMCUSTOMDRAW" genau wie mit dem "DRAWITEMSTRUCT" machen ?
Und ist ein Rectangle nicht ein Viereck ?
Wie bekomme ich es denn hin, noch ein Bitmap für den Focus der Buttons zu laden ?

Wie auch immer, da heist es erstmal ausprobieren....

Nochmals danke
 
NMCUSTOMDRAW ist ziemlich kompliziert. Beim Button geht es, du bekommst für einzelne Abschnitte bei der Darstellung einen Aufruf.

Da hilft wirklich nur ein Blick in die MSDN, da ist das aufgeschlüsselt.

Für das Focus-Bitmap, das mußt zu selber laden. Falls da kein Style-Bit mitkommt, kannst du auch die normalen Funktionen wie GetFocus() benutzen, um rauszubekommen, ob du den Fokus hast.
 
Zurück