Scalabium Software

SMExport advertising

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:

  1. to get the header handle for the listview
  2. to read the current style attributes for the header
  3. to modify a style
  4. to apply the new style
  5. to invalidate the listview

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

See also
 
SMExport suite
SMImport suite
SMReport
SMDBGrid
MAPIMail
Paradox Viewer
Paradox ActiveX
ExcelFile Viewer
Metafile Convert
DBLoad
DBExport tools
 
 
Contact to webmaster

 

Borland Software Code Gear Scalabium Delphi tips

Copyrightc 1998-2008, Scalabium Software. All rights reserved.
webmaster@scalabium.com

December 2, 2003

SMReport Autogenerated