Click here to Skip to main content
Click here to Skip to main content

SuperGrid - Yet Another listview control

By , 8 Dec 1999
 

Sample Image

Okay yet another full blown ownerdraw listview control with a tree like thing in the first column.

What´s new:

  • subitems now supports images
  • improved sorting
  • bugfixes reported by you.

please see the history section in the SuperGridCtrl.cpp file for further reading.

Features:

The listview control has support for editing subitems and basic user navigation. To edit an item hit the Enter key to start editing, when done editing, hit the Enter Key again. The listview control also has support for sorting items, drag and drop, basic scroll, autoscroll and autoexpand when dragging an item over another item. The listview control supports Insert/Delete items and you can use the +,-,* keys to expand/collapse items. The listview control does NOT support header drag/drop operations. Thanks for all them positive emails I have recived. If you have any suggestions to some future version let me know.

Note:

The class CSuperGridCtrl is derived from CListCtrl and it has a nested class called CTreeItem. The CTreeItem represents a node in a linked list. Each CTreeItem has a CObList representing its children and a few data members telling you the current status on the node e.g expanded, haschildren etc. Each listview item has a pointer to the CTreeItem(stored in the lParam of course). The CTreeItem has an associated class called CItemInfo. The CItemInfo class represents the data in the listview. This class is just a wrapper for the CStringArray, each item in the array represents a subitem. You may have to modify this class to suit your logical data-representation in the listview. In each CItemInfo you may associate a controltype: default controltype is an edit-control. In the source code you will find an example on how to associate a combobox control to a specific CItemInfo and how to initalize the combobox with default values.

Another standard control which is implicit in the listview control are the checkbox-control, by using the LVS_EX_CHECKBOXES style you will have this control for free, nothing new here....but in the CItemInfo class you will be able to test which items are checked. The class CMySuperGrid which is derived from CSuperGridCtrl shows you how to initalize the grid, insert root items, insert items, sort items, associate controltypes and how to implement 'print preview' selected or checked items depending on which extended style you have set, it also shows you have to search for items, select items, delete items and how to set the current listview icon and individual cell color. The source code shows you how to use the listview control in a CView derived class and in a CDialog derived class.

The listview control was built with Visual C++ 6.0 (sp10) level 8 on Windows 2000 beta 9, I don't remember the Netcard ID ;-).

In the SuperGridCtrl.h header file you will find further information/documentation on how to use this listview control. I have included a "history" section in the SuperGridCtrl.cpp file.

Drop me a line when you find that bug or if you have any comments / suggestions / improvement at all to this listview control.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Allan Nielsen
Switzerland Switzerland
Member
No Biography provided

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
Hint: For improved responsiveness ensure Javascript is enabled and choose 'Normal' from the Layout dropdown and hit 'Update'.
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
QuestionDo you have a VB OO compatible version or OCX ?memberMCMikey6921 Mar '07 - 7:40 
GeneralBug in check boxesmember_faraz12 Mar '07 - 0:48 
GeneralRe: Bug in check boxesmember_faraz12 Mar '07 - 1:33 
Questionhow do you implement it ?membershuaicarr25 Jan '07 - 18:24 
QuestionNested List-Control with Column-Headers ?memberwebspektive7 Dec '06 - 4:34 
GeneralReally useful but is it possible? [modified]membercrazydave2223 Oct '06 - 4:27 
Question1. Does anybody know how to implement Multiselection ( Rows ) into this fine piece of code?memberhawonjeon10 Oct '06 - 20:26 
AnswerRe: 1. Does anybody know how to implement Multiselection ( Rows ) into this fine piece of code?membertangshengye29 Oct '08 - 2:24 
Generalproblem with add 100 000 nodesmembernikomsj14 Sep '06 - 3:16 
Generalbugmemberkingship9 Aug '06 - 6:32 
GeneralNeed Some helpmemberkonstantinos_100028 Jul '06 - 0:42 
Generalvery goodmemberbishanhu6 Jun '06 - 3:37 
Generalwrong version in the download linkmemberbanbanyy8 Feb '06 - 1:39 
Questionany one immplemented LVS_EX_HEADERDRAGDROP to this??memberkumar_anand8 Dec '05 - 23:19 
QuestionHow to use SetItemData?memberHarveyLiu14 Aug '05 - 17:49 
AnswerRe: How to use SetItemData?memberDanila Korablin25 Jun '07 - 5:34 
QuestionHow to change Parent ItemmemberTu Tran15 Jul '05 - 13:52 
Generalset check box after iconsmembersammmmmy7 Jul '05 - 23:55 
GeneralRe: set check box after iconsmembersammmmmy8 Jul '05 - 0:06 
Generalvery good,Thaknsmemberhpxs21 Jun '05 - 17:08 
QuestionHow can I realize the directory tree like the listview?memberblestrabbit13 Apr '05 - 17:02 
QuestionHow to do sorting depending on column data type?memberNikoletinaBursac8 Mar '05 - 7:43 
GeneralDifferent Item Heightmemberhypercor17 Feb '05 - 1:20 
GeneralRe: Different Item Heightmemberiliyang16 Jun '05 - 9:20 
Generalmoving rowssussmeir_elkabetz@hotmail.com16 Feb '05 - 4:13 
Questionhow can set a col is readonlysussAnonymous3 Nov '04 - 18:41 
GeneralA Definite BugsussBill Ross29 Sep '04 - 7:30 
QuestionCan I use this in .net visual c++memberChetan.M22 Sep '04 - 21:22 
GeneralSorting is kinda weakmemberLakeFerrits10 Aug '04 - 11:15 
GeneralVERY hard to usememberjtorjo19 Jul '04 - 22:05 
GeneralRe: VERY hard to usemember@llan25 Feb '05 - 21:02 
GeneralRe: VERY hard to usememberjtorjo26 Feb '05 - 8:58 
GeneralThis is VERY difficult to customizememberbrchris19 Jun '04 - 8:25 
GeneralRe: This is VERY difficult to customizememberbrdavid5 Mar '05 - 8:43 
GeneralRe: This is VERY difficult to customizesussicecube418 Feb '05 - 9:06 
GeneralEasy way to place this in custom appsussAnonymous5 Jun '04 - 0:48 
QuestionHow to use CTreeItem class and its member function in SuperVw class?memberbenax.von19 May '04 - 22:18 
GeneralUsing this control without ImageListmemberJimmyO19 May '04 - 4:11 
GeneralControl flckers during column resizememberHarnash12 May '04 - 4:19 
GeneralRe: Control flckers during column resizememberMartin Richter19 May '04 - 2:11 
GeneralRe: Control flckers during column resizememberHarnash19 May '04 - 2:19 
QuestionIs this a COM component?memberZippyBubbleHead14 Apr '04 - 3:41 
AnswerRe: Is this a COM component?memberMartin Richter19 May '04 - 2:12 
Questionhow to fix the tree column?memberjingdeyi1 Apr '04 - 21:38 
AnswerRe: how to fix the tree column?memberMartin Richter19 May '04 - 2:13 
GeneralRe: how to fix the tree column?memberRaymond S3 Jun '04 - 11:15 
GeneralRe: how to fix the tree column?memberMartin Richter3 Jun '04 - 19:42 
GeneralRe: how to fix the tree column?memberRaymond S4 Jun '04 - 4:57 
GeneralRe: how to fix the tree column?memberRaymond S4 Jun '04 - 5:07 
GeneralScrollbar doesn't work in XP!membertungpth23 Mar '04 - 19:01 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Permalink | Advertise | Privacy | Mobile
Web01 | 2.6.130516.1 | Last Updated 9 Dec 1999
Article Copyright 1999 by Allan Nielsen
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid