![]() |
(NonVCL) ListView Ownerdraw Column Index
Wie komme ich in Report View an den Column Header Index wenn ich mit der Maus drüberfahre.
Delphi-Quellcode:
Header_GetFocusedItem schlägt im Report View (MultiSelect) schon bei 0 an egal wo ich mich gerade auf dem Header befinde.
WM_MOUSEMOVE:
begin DC := GetDC(WinHandle); HeaderItemCount := Header_GetItemCount(WinHandle); for HeaderItem := 0 to HeaderItemCount - 1 do begin if (HeaderItem = Header_GetFocusedItem(WinHandle)) then begin try GdipCheck(GdipCreateFromHDC(DC, Graphics)); Header_GetItemRect(WinHandle, HeaderItem , @HeaderItemRect); SkinEngine.PaintButton(Graphics, 3, ImgBack, HeaderItemRect.Left, HeaderItemRect.Top, HeaderItemRect.Right, HeaderItemRect.Bottom, BS_PUSHBUTTON); finally if Graphics <> 0 then GdipCheck(GdipDeleteGraphics(Graphics)); end; end; end; ReleaseDC(WinHandle, DC); end; Ich benötige den Index einmal zum zeichnen und zum Sortieren der Liste. ListView_GetColumn funktioniert auch nicht im Report View. (MultiSelect) gruss |
AW: (NonVCL) ListView Ownerdraw Column Index
Sorry Thread war unnötig ;)
Nach dem schreiben bin ich selber auf die Lösung gekommen. Manchmal ist man einfach nur Blöd :wall:
Delphi-Quellcode:
gruss
WM_MOUSEMOVE:
begin DC := GetDC(WinHandle); HeaderItemCount := Header_GetItemCount(WinHandle); for HeaderItem := 0 to HeaderItemCount - 1 do begin try GdipCheck(GdipCreateFromHDC(DC, Graphics)); Header_GetItemRect(WinHandle, HeaderItem , @HeaderItemRect); GetCursorPos(CurPos); ScreenToClient(Handle, CurPos); if PtInRect(HeaderItemRect, CurPos) then begin TmpRect := HeaderItemRect; TmpRect.Right := HeaderItemRect.Right - HeaderItemRect.Left; SkinEngine.PaintButton(Graphics, 4, ImgBack, TmpRect.Left, TmpRect.Top, TmpRect.Right, TmpRect.Bottom, BS_PUSHBUTTON); end; finally if Graphics <> 0 then GdipCheck(GdipDeleteGraphics(Graphics)); end; end; ReleaseDC(WinHandle, DC); end; |
AW: (NonVCL) ListView Ownerdraw Column Index
Zitat:
|
AW: (NonVCL) ListView Ownerdraw Column Index
Zitat:
Ich habe zwar den Index nicht bekommen dafür aber den Rect. Zum Zeichnen reicht das erst mal. Den Index hole ich mir an anderer stelle. gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz