Click here to Skip to main content
14,218,418 members

XListCtrl - A custom-draw list control with subitem formatting

Rate this:
4.92 (261 votes)
Please Sign up or sign in to vote.
4.92 (261 votes)
6 Sep 2006CPOL
A custom-draw list control with support for subitem colors, bold font, progress bars, and checkboxes.
PropertySheet
hans.ico
PropertySheet.dsp
XListCtrl
checkboxes.bmp
XListCtrlLib
XListCtrlDD.dsp
XListCtrlDS.dsp
XListCtrlSS.dsp
DialogDSRA.exe
XListCtrlTest.dsw
Dialog
checkboxes.bmp
DialogDD.dsp
DialogDS.dsp
DialogSS.dsp
hans.ico
MDI
Doc.ico
hans.ico
MDI.dsp
Toolbar.bmp
XListViewDoc.ico
XListView.exe
checkboxes.bmp
Toolbar.bmp
XListView.dsp
XListView.dsw
XListView.ico
//Microsoft Visual C++ generated resource script.
//
#include "resource.h"

#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//

#include "afxres.h"

/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS

#ifdef APSTUDIO_INVOKED

/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//

1 TEXTINCLUDE DISCARDABLE 
BEGIN
	"resource.h\0"
END

2 TEXTINCLUDE DISCARDABLE 
BEGIN
	"#include ""afxres.h""\r\n"
	"\0"
END

3 TEXTINCLUDE DISCARDABLE 
BEGIN
    "#define _AFX_NO_SPLITTER_RESOURCES\r\n"
    "#define _AFX_NO_OLE_RESOURCES\r\n"
    "#define _AFX_NO_TRACKER_RESOURCES\r\n"
    "#define _AFX_NO_PROPERTY_RESOURCES\r\n"
	"\r\n"
	"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
	"#ifdef _WIN32\r\n"
	"LANGUAGE 9, 1\r\n"
	"#pragma code_page(1252)\r\n"
	"#endif //_WIN32\r\n"
	"#include ""afxres.rc""  	// Standard components\r\n"
	"#include ""afxprint.rc""	// printing/print preview resources\r\n"
	"#endif\r\n"
	"\0"
END

#endif    // APSTUDIO_INVOKED

/////////////////////////////////////////////////////////////////////////////
//
// 24
//

1                       24      MOVEABLE PURE   "app.manifest"

/////////////////////////////////////////////////////////////////////////////
//
// Icon
//

// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE 9, 1
#pragma code_page(1252)
#endif //_WIN32
IDR_MAINFRAME           ICON    DISCARDABLE     "hans.ico"
IDR_MDITYPE         ICON    DISCARDABLE     	"Doc.ico"
#endif

/////////////////////////////////////////////////////////////////////////////
//
// Bitmap
//

IDR_MAINFRAME           BITMAP  MOVEABLE PURE   "Toolbar.bmp"

/////////////////////////////////////////////////////////////////////////////
//
// Toolbar
//

IDR_MAINFRAME TOOLBAR DISCARDABLE  16, 15
BEGIN
    BUTTON      ID_FILE_NEW
    BUTTON      ID_FILE_OPEN
    BUTTON      ID_FILE_SAVE
	SEPARATOR
    BUTTON      ID_EDIT_CUT
    BUTTON      ID_EDIT_COPY
    BUTTON      ID_EDIT_PASTE
	SEPARATOR
    BUTTON      ID_FILE_PRINT
	SEPARATOR
    BUTTON      ID_APP_ABOUT
END




#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE 9, 1
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//

IDR_MAINFRAME MENU PRELOAD DISCARDABLE 
BEGIN
	POPUP "&File"
	BEGIN
		MENUITEM "&New\tCtrl+N",                ID_FILE_NEW
		MENUITEM "&Open...\tCtrl+O",            ID_FILE_OPEN
		MENUITEM SEPARATOR
		MENUITEM "P&rint Setup...",             ID_FILE_PRINT_SETUP
		MENUITEM SEPARATOR
		MENUITEM "Recent File",                 ID_FILE_MRU_FILE1,GRAYED
		MENUITEM SEPARATOR
		MENUITEM "E&xit",                       ID_APP_EXIT
	END
	POPUP "&View"
	BEGIN
		MENUITEM "&Toolbar",                    ID_VIEW_TOOLBAR
		MENUITEM "&Status Bar",                 ID_VIEW_STATUS_BAR
	END
	POPUP "&Help"
	BEGIN
		MENUITEM "&About MDI...",          ID_APP_ABOUT
	END
END
IDR_MDITYPE MENU PRELOAD DISCARDABLE 
BEGIN
	POPUP "&File"
	BEGIN
		MENUITEM "&New\tCtrl+N",                ID_FILE_NEW
		MENUITEM "&Open...\tCtrl+O",            ID_FILE_OPEN
		MENUITEM "&Close",                      ID_FILE_CLOSE
		MENUITEM "&Save\tCtrl+S",               ID_FILE_SAVE
		MENUITEM "Save &As...",                 ID_FILE_SAVE_AS
		MENUITEM SEPARATOR
		MENUITEM "&Print...\tCtrl+P",           ID_FILE_PRINT
		MENUITEM "Print Pre&view",              ID_FILE_PRINT_PREVIEW
		MENUITEM "P&rint Setup...",             ID_FILE_PRINT_SETUP
		MENUITEM SEPARATOR
		MENUITEM "Recent File",                 ID_FILE_MRU_FILE1,GRAYED
		MENUITEM SEPARATOR
		MENUITEM "E&xit",                       ID_APP_EXIT
	END
	POPUP "&Edit"
	BEGIN
		MENUITEM "&Undo\tCtrl+Z",               ID_EDIT_UNDO
		MENUITEM SEPARATOR
		MENUITEM "Cu&t\tCtrl+X",                ID_EDIT_CUT
		MENUITEM "&Copy\tCtrl+C",               ID_EDIT_COPY
		MENUITEM "&Paste\tCtrl+V",              ID_EDIT_PASTE
	END
	POPUP "&View"
	BEGIN
		MENUITEM "&Toolbar",                    ID_VIEW_TOOLBAR
		MENUITEM "&Status Bar",                 ID_VIEW_STATUS_BAR
	END
	POPUP "&Window"
	BEGIN
		MENUITEM "&New Window",                 ID_WINDOW_NEW
		MENUITEM "&Cascade",                    ID_WINDOW_CASCADE
		MENUITEM "&Tile",                       ID_WINDOW_TILE_HORZ
		MENUITEM "&Arrange Icons",              ID_WINDOW_ARRANGE
	END
	POPUP "&Help"
	BEGIN
		MENUITEM "&About MDI...",          ID_APP_ABOUT
	END
END




/////////////////////////////////////////////////////////////////////////////
//
// Accelerator
//

IDR_MAINFRAME ACCELERATORS PRELOAD MOVEABLE PURE
BEGIN
	"N",            ID_FILE_NEW,            VIRTKEY,CONTROL
	"O",            ID_FILE_OPEN,           VIRTKEY,CONTROL
	"S",            ID_FILE_SAVE,           VIRTKEY,CONTROL
	"P",            ID_FILE_PRINT,          VIRTKEY,CONTROL
	"Z",            ID_EDIT_UNDO,           VIRTKEY,CONTROL
	"X",            ID_EDIT_CUT,            VIRTKEY,CONTROL
	"C",            ID_EDIT_COPY,           VIRTKEY,CONTROL
	"V",            ID_EDIT_PASTE,          VIRTKEY,CONTROL
	VK_BACK,        ID_EDIT_UNDO,           VIRTKEY,ALT
	VK_DELETE,      ID_EDIT_CUT,            VIRTKEY,SHIFT
	VK_INSERT,      ID_EDIT_COPY,           VIRTKEY,CONTROL
	VK_INSERT,      ID_EDIT_PASTE,          VIRTKEY,SHIFT
	VK_F6,          ID_NEXT_PANE,           VIRTKEY 
	VK_F6,          ID_PREV_PANE,           VIRTKEY,SHIFT
END




/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//

IDD_ABOUTBOX DIALOG DISCARDABLE  0, 0, 270, 131
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About MDI"
FONT 8, "MS Sans Serif"
BEGIN
    ICON            IDR_MAINFRAME,IDC_STATIC,11,14,20,20,SS_CENTERIMAGE | 
                    WS_BORDER
    LTEXT           "MDI Version 1.4",IDC_STATIC,40,13,119,8,
                    SS_NOPREFIX
    LTEXT           "Copyright � 1999-2006 Hans Dietrich",IDC_STATIC,40,27,
                    165,8
    LTEXT           "This software is provided ""as is"" with no expressed or implied warranty.  I accept no liability for any damage or loss of business that this software may cause. ",
                    IDC_STATIC,40,71,165,32
    LTEXT           "Send email to Hans Dietrich",IDC_ABOUT_EMAIL,90,113,90,
                    8,SS_CENTERIMAGE
    DEFPUSHBUTTON   "OK",IDOK,209,9,50,14,WS_GROUP
    LTEXT           "This software is released into the public domain.  You are free to use it in any way you like, except that you may not sell this source code.",
                    IDC_STATIC,40,41,165,24
END


/////////////////////////////////////////////////////////////////////////////
//
// Version
//

VS_VERSION_INFO VERSIONINFO
 FILEVERSION 1,4,0,1
 PRODUCTVERSION 1,4,0,1
 FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
 FILEFLAGS 0x1L
#else
 FILEFLAGS 0x0L
#endif
 FILEOS 0x4L
 FILETYPE 0x1L
 FILESUBTYPE 0x0L
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "040904b0"
        BEGIN
            VALUE "E-mail", "hdietrich@gmail.com\0"
            VALUE "Article", "http://www.codeproject.com/listctrl/xlistctrl.asp\0"
            VALUE "FileDescription", "MDI - XListCtrl CView Demo\0"
            VALUE "FileVersion", "1, 4, 0, 1\0"
            VALUE "LegalCopyright", "Copyright � 2006 Hans Dietrich\0"
            VALUE "ProductName", "MDI\0"
            VALUE "ProductVersion", "1, 4, 0, 1\0"
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x409, 1200
    END
END

/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//

#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE 
BEGIN
    IDD_ABOUTBOX, DIALOG
    BEGIN
        LEFTMARGIN, 7
        RIGHTMARGIN, 228
        TOPMARGIN, 7
        BOTTOMMARGIN, 48
    END
END
#endif    // APSTUDIO_INVOKED

/////////////////////////////////////////////////////////////////////////////
//
// String Table
//

STRINGTABLE PRELOAD DISCARDABLE 
BEGIN
	IDR_MAINFRAME           "MDI"
	IDR_MDITYPE         "\nMDI\nMDI\n\n\nMDI.Document\nMDI Document"    
	IDS_MAILTO              "mailto:hdietrich@gmail.com?subject=XListCtrl"
END
STRINGTABLE PRELOAD DISCARDABLE 
BEGIN
	AFX_IDS_APP_TITLE       "MDI"
	AFX_IDS_IDLEMESSAGE     "Ready"
END
STRINGTABLE DISCARDABLE 
BEGIN
	ID_INDICATOR_EXT        "EXT"
	ID_INDICATOR_CAPS       "CAP"
	ID_INDICATOR_NUM        "NUM"
	ID_INDICATOR_SCRL       "SCRL"
	ID_INDICATOR_OVR        "OVR"
	ID_INDICATOR_REC        "REC"
END
STRINGTABLE DISCARDABLE 
BEGIN
	ID_FILE_NEW             "Create a new document\nNew"
	ID_FILE_OPEN            "Open an existing document\nOpen"
	ID_FILE_CLOSE           "Close the active document\nClose"
	ID_FILE_SAVE            "Save the active document\nSave"
	ID_FILE_SAVE_AS         "Save the active document with a new name\nSave As"
	ID_FILE_PAGE_SETUP      "Change the printing options\nPage Setup"
	ID_FILE_PRINT_SETUP     "Change the printer and printing options\nPrint Setup"
	ID_FILE_PRINT           "Print the active document\nPrint"
	ID_FILE_PRINT_PREVIEW   "Display full pages\nPrint Preview"
	ID_APP_ABOUT            "Display program information, version number and copyright\nAbout"
	ID_APP_EXIT             "Quit the application; prompts to save documents\nExit"
	ID_FILE_MRU_FILE1       "Open this document"
	ID_FILE_MRU_FILE2       "Open this document"
	ID_FILE_MRU_FILE3       "Open this document"
	ID_FILE_MRU_FILE4       "Open this document"
	ID_FILE_MRU_FILE5       "Open this document"
	ID_FILE_MRU_FILE6       "Open this document"
	ID_FILE_MRU_FILE7       "Open this document"
	ID_FILE_MRU_FILE8       "Open this document"
	ID_FILE_MRU_FILE9       "Open this document"
	ID_FILE_MRU_FILE10      "Open this document"
	ID_FILE_MRU_FILE11      "Open this document"
	ID_FILE_MRU_FILE12      "Open this document"
	ID_FILE_MRU_FILE13      "Open this document"
	ID_FILE_MRU_FILE14      "Open this document"
	ID_FILE_MRU_FILE15      "Open this document"
	ID_FILE_MRU_FILE16      "Open this document"
	ID_NEXT_PANE            "Switch to the next window pane\nNext Pane"
	ID_PREV_PANE            "Switch back to the previous window pane\nPrevious Pane"
	ID_WINDOW_NEW           "Open another window for the active document\nNew Window"
	ID_WINDOW_ARRANGE       "Arrange icons at the bottom of the window\nArrange Icons"
	ID_WINDOW_CASCADE       "Arrange windows so they overlap\nCascade Windows"
	ID_WINDOW_TILE_HORZ     "Arrange windows as non-overlapping tiles\nTile Windows"
	ID_WINDOW_TILE_VERT     "Arrange windows as non-overlapping tiles\nTile Windows"
	ID_WINDOW_SPLIT         "Split the active window into panes\nSplit"
	ID_EDIT_CLEAR           "Erase the selection\nErase"
	ID_EDIT_CLEAR_ALL       "Erase everything\nErase All"
	ID_EDIT_COPY            "Copy the selection and put it on the Clipboard\nCopy"
	ID_EDIT_CUT             "Cut the selection and put it on the Clipboard\nCut"
	ID_EDIT_FIND            "Find the specified text\nFind"
	ID_EDIT_PASTE           "Insert Clipboard contents\nPaste"
	ID_EDIT_REPEAT          "Repeat the last action\nRepeat"
	ID_EDIT_REPLACE         "Replace specific text with different text\nReplace"
	ID_EDIT_SELECT_ALL      "Select the entire document\nSelect All"
	ID_EDIT_UNDO            "Undo the last action\nUndo"
	ID_EDIT_REDO            "Redo the previously undone action\nRedo"
	ID_VIEW_TOOLBAR         "Show or hide the toolbar\nToggle ToolBar"
	ID_VIEW_STATUS_BAR      "Show or hide the status bar\nToggle StatusBar"
END

STRINGTABLE DISCARDABLE 
BEGIN
	AFX_IDS_SCSIZE          "Change the window size"
	AFX_IDS_SCMOVE          "Change the window position"
	AFX_IDS_SCMINIMIZE      "Reduce the window to an icon"
	AFX_IDS_SCMAXIMIZE      "Enlarge the window to full size"
	AFX_IDS_SCNEXTWINDOW    "Switch to the next document window"
	AFX_IDS_SCPREVWINDOW    "Switch to the previous document window"
	AFX_IDS_SCCLOSE         "Close the active window and prompts to save the documents"
	AFX_IDS_SCRESTORE       "Restore the window to normal size"
	AFX_IDS_SCTASKLIST      "Activate Task List"
	AFX_IDS_MDICHILD        "Activate this window"
	AFX_IDS_PREVIEW_CLOSE   "Close print preview mode\nCancel Preview"
END


#endif


#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//

#define _AFX_NO_SPLITTER_RESOURCES
#define _AFX_NO_OLE_RESOURCES
#define _AFX_NO_TRACKER_RESOURCES
#define _AFX_NO_PROPERTY_RESOURCES

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE 9, 1
#pragma code_page(1252)
#endif //_WIN32
#include "afxres.rc"  	// Standard components
#include "afxprint.rc"  // printing/print preview resources
#endif

#endif    // not APSTUDIO_INVOKED

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

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

Share

About the Author

Hans Dietrich
Software Developer (Senior) Hans Dietrich Software
United States United States
I attended St. Michael's College of the University of Toronto, with the intention of becoming a priest. A friend in the University's Computer Science Department got me interested in programming, and I have been hooked ever since.

Recently, I have moved to Los Angeles where I am doing consulting and development work.

For consulting and custom software development, please see www.hdsoft.org.






Stats

2.6M views
30.4K downloads
650 bookmarked