| Scalabium Software | |
| Knowledge for your independence'. | |
|  Home  Delphi and C++Builder
        tips | 
| #159: Flat header for TListView | 
| 
 | In this tip I want to show how to change a style for header in TListView. For example, you may specify a flat header. You may do it so: 
 In the next code I show how to apply a flat style: const
  LVM_GETHEADER = LVM_FIRST + 31;
var
  hHeader: THandle;
  style: dWord;
begin
  {to get the header handle for the listview}
  hHeader := SendMessage(ListView1.Handle, LVM_GETHEADER, 0, 0);
  {to get the current style attributes for the header}
  style := GetWindowLong(hHeader, GWL_STYLE);
  {to toggle the HDS_BUTTONS style}
  style := style xor HDS_BUTTONS;
  {to apply the new style}
  SetWindowLong(hHeader, GWL_STYLE, style);
  {to invalidate the listview}
  SetWindowPos(ListView1.Handle, Form1.Handle, 0, 0, 0, 0,
               SWP_NOZORDER or SWP_NOSIZE or SWP_NOMOVE or SWP_DRAWFRAME)
end;
Note if you run a code in Windows XP with enabled XP theming, you'll not see any difference. But in all other cases you'll see a flat header for ListView 
 | 
 | 
|       | Copyright© 1998-2025, Scalabium
        Software. All rights reserved. |