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


Published: December 2, 2003

See also
 
Paradox Password Recovery
Word Web-stream
Fast Document Viewer
Viewer for MS Outlook Messages
ABA Spreadsheet Convert
MAPIMail
dBase Viewer
DBExport tools
SMReport
ABA Picture Convert
 
 


Contact to webmaster

 

Borland Software Code Gear Scalabium Delphi tips

Copyright© 1998-2017, Scalabium Software. All rights reserved.
webmaster@scalabium.com

SMReport Autogenerated