[DUG] Drawing images in TListView sub items

John Bird johnkbird at paradise.net.nz
Fri Sep 8 12:24:54 NZST 2006


If this is what you mean here is the excerpt from the D2006 help...

ListView_GetSubItemRect Macro

----------------------------------------------------------------------------
----

Retrieves information about the rectangle that surrounds a subitem in a
list-view control. You can use this macro (recommended) or send the
LVM_GETSUBITEMRECT message explicitly. This macro is intended to be used
only on list-view controls that use the LVS_REPORT style. 

Syntax

BOOL ListView_GetSubItemRect(
    HWND hwndLV,
    int iItem,
    int iSubItem,
    int code,
    LPRECT lpRect
);

Parameters

hwndLV
Handle to a list-view control. 
iItem
Index of the subitem's parent item. 
iSubItem
The one-based index of the subitem. 
code
Portion of the list-view subitem for which to retrieve the bounding
rectangle information. This value can be one of the following: 
LVIR_BOUNDS
Returns the bounding rectangle of the entire item, including the icon and
label.
LVIR_ICON
Returns the bounding rectangle of the icon or small icon.
LVIR_LABEL
Returns the bounding rectangle of the entire item, including the icon and
label. This is identical to LVIR_BOUNDS.
lpRect
Pointer to a RECT structure that receives the subitem bounding rectangle
information. 
Return Value

Returns nonzero if successful, or zero otherwise.

Macro Information

Minimum DLL Version comctl32.dll version 4.70 or later 
Header commctrl.h 
Minimum operating systems Windows 2000, Windows NT 4.0 with Internet
Explorer 3.0, Windows 98, Windows 95 with Internet Explorer 3.0 


John

-----Original Message-----
From: delphi-bounces at ns3.123.co.nz [mailto:delphi-bounces at ns3.123.co.nz] On
Behalf Of Robert martin
Sent: Friday, 8 September 2006 12:17 p.m.
To: NZ Borland Developers Group - Delphi List
Subject: [DUG] Drawing images in TListView sub items


Hi

I am trying to draw images into a TListView (vsReport) on the 
ownerDrawSubItem event.  However I need to get the TRect of the sub item 
to draw into.  I have found people use

*ListView_GetSubItemRect*(

However this Win API ?  Is not defined in Delphi 6.  Could someone with 
a newer Delphi version cut and paste the definition for me (I want to 
get it right). 

Is this the right way of doing it?

I am wanting to do something like...


procedure TMainForm.ResultListViewCustomDrawSubItem(
  Sender: TCustomListView; Item: TListItem; SubItem: Integer;
  State: TCustomDrawState; var DefaultDraw: Boolean);
var
    SubItemRect     : TRect;
begin
    if (Item.SubItems[SubItem]  = 'T') then begin
        ListView_GetSubItemRect(Sender.Handle, Item.Index, SubItem, 0, 
@SubItemRect);

        ResultListView.Canvas.StretchDraw(SubItemRect, 
TickImage.Picture.Graphic);
    end
    else if (Item.SubItems[SubItem] = 'F') then begin
        //Stubbed
    end
    else if (Item.SubItems[SubItem] = 'O') then begin
        //Stubbed
    end;



-- 
Rob Martin
Software Engineer

phone +64 03 377 0495
fax   +64 03 377 0496
web www.chreos.com

Wild Software Ltd

_______________________________________________
Delphi mailing list
Delphi at ns3.123.co.nz http://ns3.123.co.nz/mailman/listinfo/delphi


__________ NOD32 1.1461 (20060329) Information __________

This message was checked by NOD32 antivirus system. http://www.eset.com





More information about the Delphi mailing list