一、设置列表样式
设置当前的列表视图控件扩展的样式
CListCtrl::SetExtendedStyle
函数原型
DWORDSetExtendedStyle(DWORD dwNewStyle);
dwNewStyle
要使用列表视图控件的扩展样式的组合。
Constant | Description |
---|---|
LVS_EX_AUTOAUTOARRANGE |
Windows Vista.如果没有图标自动排列图标位置设置(类似于LVS_AUTOARRANGE)。 |
LVS_EX_AUTOCHECKSELECT | Windows Vista. 自动选择单击复选框 |
LVS_EX_AUTOSIZECOLUMNS |
Windows Vista.自动大小列表视图列。 |
LVS_EX_BORDERSELECT |
Version 4.71.边框颜色变化时选择一个项目,而不是突出显示项。 |
LVS_EX_CHECKBOXES |
每一行最前面都有一个复选框 |
LVS_EX_COLUMNOVERFLOW |
Indicates that an overflow button should be displayed in icon/tile view if there is not enough client width to display the complete set of header items. The list-view control sends the LVN_COLUMNOVERFLOWCLICK notification when the overflow button is clicked. This flag is only valid when LVS_EX_HEADERINALLVIEWS is also specified. |
LVS_EX_COLUMNSNAPPOINTS |
Windows Vista. Snap to minimum column width when the user resizes a column. |
LVS_EX_DOUBLEBUFFER |
Version 6.00. Paints via double-buffering, which reduces flicker. This extended style also enables alpha-blended marquee selection on systems where it is supported. |
LVS_EX_FLATSB |
Version 4.71. Enables flat scroll bars in the list view. If you need more control over the appearance of the list view's scroll bars, you should manipulate the list view's scroll bars directly using theFlat Scroll Bar APIs. If the system metrics change, you are responsible for adjusting the scroll bar metrics withFlatSB_SetScrollProp. SeeFlat Scroll Barsfor further details. |
LVS_EX_FULLROWSELECT |
整行选中 |
LVS_EX_GRIDLINES |
网格线 |
LVS_EX_HEADERDRAGDROP |
列表头/列标题名可以拖动 |
LVS_EX_HEADERINALLVIEWS |
Windows Vista. Show column headers in all view modes. |
LVS_EX_HIDELABELS |
Version 6.00. Hides the labels in icon and small icon view. |
LVS_EX_INFOTIP |
Version 4.71. When a list-view control uses theLVS_EX_INFOTIPstyle, theLVN_GETINFOTIPnotification code is sent to the parent window before displaying an item's tooltip. |
LVS_EX_JUSTIFYCOLUMNS |
Windows Vista. Icons are lined up in columns that use up the whole view. |
LVS_EX_LABELTIP |
Version 5.80. If a partially hidden label in any list view mode lacks tooltip text, the list-view control will unfold the label. If this style is not set, the list-view control will unfold partly hidden labels only for the large icon mode. |
LVS_EX_MULTIWORKAREAS |
Version 4.71. If the list-view control has theLVS_AUTOARRANGEstyle, the control will not autoarrange its icons until one or more work areas are defined (seeLVM_SETWORKAREAS). To be effective, this style must be set before any work areas are defined and any items have been added to the control. |
LVS_EX_ONECLICKACTIVATE |
Version 4.70. The list-view control sends anLVN_ITEMACTIVATEnotification code to the parent window when the user clicks an item. This style also enableshot trackingin the list-view control. Hot tracking means that when the cursor moves over an item, it is highlighted but not selected. See the Extended List-View Styles Remarks section for a discussion of item activation. |
LVS_EX_REGIONAL |
Version 4.71through Version 5.80 only. Not supported on Windows Vista. Sets the list view window region to include only the item icons and text usingSetWindowRgn. Any area that is not part of an item is excluded from the window region. This style is only available to list-view controls that use theLVS_ICONstyle. |
LVS_EX_SIMPLESELECT |
Version 6.00. In icon view, moves the state image of the control to the top right of the large icon rendering. In views other than icon view there is no change. When the user changes the state by using the space bar, all selected items cycle over, not the item with the focus. |
LVS_EX_SINGLEROW |
Version 6.00. Not used. |
LVS_EX_SNAPTOGRID |
Version 6.00. In icon view, icons automatically snap into a grid. |
LVS_EX_SUBITEMIMAGES |
Version 4.70. Allows images to be displayed for subitems. This style is available only in conjunction with theLVS_REPORTstyle. |
LVS_EX_TRACKSELECT |
Version 4.70. Enables hot-track selection in a list-view control. Hot track selection means that an item is automatically selected when the cursor remains over the item for a certain period of time. The delay can be changed from the default system setting with aLVM_SETHOVERTIMEmessage. This style applies to all styles of list-view control. You can check whether hot-track selection is enabled by callingSystemParametersInfo. |
LVS_EX_TRANSPARENTBKGND |
Windows Vista. Background is painted by the parent viaWM_PRINTCLIENT. |
LVS_EX_TRANSPARENTSHADOWTEXT |
Windows Vista. Enable shadow text on transparent backgrounds only. |
LVS_EX_TWOCLICKACTIVATE |
Version 4.70. The list-view control sends anLVN_ITEMACTIVATEnotification code to the parent window when the user double-clicks an item. This style also enableshot trackingin the list-view control. Hot tracking means that when the cursor moves over an item, it is highlighted but not selected. See the Extended List-View Styles Remarks section for a discussion of item activation. |
LVS_EX_UNDERLINECOLD |
Version 4.71. Causes those non-hot items that may be activated to be displayed with underlined text. This style requires thatLVS_EX_TWOCLICKACTIVATEbe set also. See the Extended List-View Styles Remarks section for a discussion of item activation. |
LVS_EX_UNDERLINEHOT |
Version 4.71. Causes those hot items that may be activated to be displayed with underlined text. This style requires thatLVS_EX_ONECLICKACTIVATEorLVS_EX_TWOCLICKACTIVATEalso be set. See the Extended List-View Styles Remarks section for a discussion of item activation. |
例子:
m_list.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
LVS_EX_FULLROWSELECT选择一行时整行高亮显示,不设置默认只是该行第一列高亮显示.

CListCtrl::InsertColumn
函数原型
int InsertColumn( int nCol, const LVCOLUMN* pColumn );
int InsertColumn( int nCol, LPCTSTR lpszColumnHeading, int nFormat = LVCFMT_LEFT, int nWidth = -1, int nSubItem = -1 );
nCol表示要插入列的列号。
pColumn 为新建列属性的LVCOLUMN结构的地址。
对于第二种函数重载,参数lpszcolumnHeading 为列标题的字符串的地址,所以可以使用一个字符串,比如 "姓名"。
nFormat 指定列对齐方式的整数,缺省值是左对齐。它可以为下列值之一:LVCFMT_LEFT,LVCFMT_RIGHT或LVCFMT_CENTER。
nWidth 以像素为单位的列宽。缺省值为-1,表示没有设置列宽。
nSubItem 与列相关联的子项的索引。缺省值为-1,表示没有子项与列相关。
例子:
m_list.InsertColumn(0,"序号",LVCFMT_CENTER,60);
m_list.InsertColumn(1,"姓名",LVCFMT_CENTER,60);
m_list.InsertColumn(2,"学号",LVCFMT_CENTER,60);
m_list.InsertColumn(3,"专业",LVCFMT_CENTER,60);
LVCFMT_CENTER代表文字显示居中 60代表宽度
m_list.SetColumnWidth(1,80); //修改列的宽度
m_list.SetColumnWidth(2,LVSCW_AUTOSIZE_USEHEADER); //根据列内容自动调整宽度
三、插入行
CListCtrl::InsertItem
函数原型
int InsertItem( const LVITEM* pItem );
int InsertItem( int nItem, LPCTSTR lpszItem );
int InsertItem( int nItem, LPCTSTR lpszItem, int nImage );
int InsertItem( UINT nMask, int nItem, LPCTSTR lpszItem, UINT nState, UINT nStateMask, int nImage, LPARAM lParam );
CListCtrl::SetItemText
BOOL SetItemText( int nItem, int nSubItem, LPTSTR lpszText );
Return Value
Nonzero if successful; otherwise zero.
Parameters
nItem
Index of the item whose text is to be set.
nSubItem
Index of the subitem, or zero to set the item label.
lpszText
Pointer to a string that contains the new item text.
第一列用InsertItem插入
m_list.InsertItem(0,"1");
m_list.InsertItem(1,"2");
m_list.InsertItem(2,"3");
其他列用SetItemText插入
m_list.SetItemText(0,1,"张三");
m_list.SetItemText(0,2,"20180101");
m_list.SetItemText(0,3,"通信工程");
这样就可以完成列表的制作了
删除数据
m_list.DeleteAllItems();//删除所有数据
m_list.DeleteColumn(0);//删除指定列 这里删第一列
m_list.DeleteItem(1);//删除指定行的数据