none
HDS_HOTTRACK mit Headercontrol mit HDF_OWNERDRAW Spalten RRS feed

  • Frage

  • Hallo

    ich verwende in einem Listcontrol ein von CHeaderControl abgeleitetes Headercontrol.

    Wenn ich dem Headercontrl den Stil HDS_HOTTRACK verpasse verhält sich das Headercontrol so wie erwartet. Sobald ich mit der Maus auf eine Spalte gehe verändert sich die Anzeige der Spalte

    Wenn ich dem ListControl bei InsertColumn den Spalten das Format HDF_OWNERDRAW verpasse habe, ich ein lupenreines ownerdraw Headercontrol und über Drawitem kann ich die einzelnen Spalten zeichen wie es mir beliebt

    Soweit so gut

    Wenn ich aber diesem ownerdraw Headercontrl den Stil HDS_HOTTRACK verpasse,
    so habe ich zwar noch mein normales ownerdrawn Headercontrol aber ich bekomme nicht mit wenn die Maus über einer Spalte steht, weil die Zeichenroutine DrawItem des Headercontrols nicht aufgerufen wird.

    Wie muss ich in einem ownerdrawn Headercontrol den HDS_HOTTRACK Stil implementieren, bzw. wenn ich die Mousemove Events abfangen würde, wie kann ich dann den Aufruf von Drawitem aulösen ?

    Bin wie immer für jeder Hilfe dankbar.


    Sonntag, 7. April 2013 14:01

Antworten

  • Du hattest diese Frage doch schon gestellt.
    Wenn keiner antwortet, hat vermutlich keiner eine Antwort.

    Ich kann nur vermuten, dass Ownerdraw einfach hier nicht unterstützt wird.
    HDS_HOTRACK wird leider kaum dokumentiert und irgendwo erwähnt.

    Mach es selbst... Du kannst die Mouse-Moves ja auch tracken und bei verlassen und bei Eingang in eine Zelle ein Invalidate auslösen.


    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de

    Montag, 8. April 2013 06:59
    Moderator

Alle Antworten

  • Du hattest diese Frage doch schon gestellt.
    Wenn keiner antwortet, hat vermutlich keiner eine Antwort.

    Ich kann nur vermuten, dass Ownerdraw einfach hier nicht unterstützt wird.
    HDS_HOTRACK wird leider kaum dokumentiert und irgendwo erwähnt.

    Mach es selbst... Du kannst die Mouse-Moves ja auch tracken und bei verlassen und bei Eingang in eine Zelle ein Invalidate auslösen.


    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de

    Montag, 8. April 2013 06:59
    Moderator
  • Ja, da wird mir wohl nix anderes übrig bleiben, schade das es keine anderen weg zu geben scheint. Trotzdem Danke für deine Hilfe
    Montag, 8. April 2013 20:37