现在位置: 首页 > CListCtrl
2013-08-23 23:39 工业·编程 ⁄ 共 4553字 暂无评论
一、引言     列表控件主要用来以各种方式显示一组数据记录供用户进行各种操作,是最常见的控件之一。WindowsXP资源管理器中的“查看”菜单下的 “图标|平铺|列表|详细信息”就是一个非常典型的应用。MFC中的CListCtrl类提供了对列表控件操作的基本方法,包括插入一个新的项目InsertItem、删除一个项目DeleteItem、排序项目SortItems等,但CListCtrl类不支持对项目的直接编辑,只能用SetItem或者SetItemText来...
阅读全文

2013-04-02 02:30 工业·编程 ⁄ 共 839字 暂无评论
建一个LISTCONTROL应该没啥好说的吧,直接拉一个MFC的工具就成. 初始化一个函数 int InitListControl()  {  _mylist.ModifyStyle(0l,LVS_REPORT|LVS_SINGLESEL|LVS_SHOWSELALWAYS|LVS_NOSORTHEADER);    _mylist.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_CHECKBOXES);    _mylist.InsertColumn(0,L"隐藏");  .  .  .  ...
阅读全文
2012-09-12 19:49 工业·编程 ⁄ 共 3439字 暂无评论
VC中在listctrl中嵌入进度条,截图如下: 其实要实现这个非常容易,以下是自绘ListCtrl的代码,首先继承CListCtrl, 然后增加函数OnCustomDraw: void CProcessList::OnCustomDraw(NMHDR *pNMHDR, LRESULT *pResult) { //draw each item.set txt color,bkcolor.... NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>(pNMHDR); // Take the default processing unless we set this to somet...
阅读全文
2012-09-11 12:43 工业·编程 ⁄ 共 606字 暂无评论
1. 手动添加NM_CUSTOMDRAW 2.处理函数: NMLVCUSTOMDRAW* pNMCD = (NMLVCUSTOMDRAW*)(pNMHDR); if (CDDS_PREPAINT == pNMCD->nmcd.dwDrawStage) { *pResult = CDRF_NOTIFYITEMDRAW; } else if (CDDS_ITEMPREPAINT == pNMCD->nmcd.dwDrawStage) { *pResult = CDRF_NOTIFYSUBITEMDRAW; } else if ((CDDS_ITEMPREPAINT | CDDS_SUBITEM) == pNMCD->nmcd.dwDrawStage) { COLORREF clrNewTextColor, clrNewBkColor; int nIte...
阅读全文
2012-09-11 12:40 工业·编程 ⁄ 共 412字 暂无评论
    因为自己想要实现隐藏,所有去网上查了很多资料,查到的几乎全是对CListCtrl的重载或是将列宽设为0,但当列宽设为0时,有一缺陷,就是用鼠标改变列宽时,可以将设为0宽度的列托出了,而重载CListCtrl感觉好麻烦,因为自己只需要隐藏几列内容,所以就想用设列宽为0,然后想办法,不让修改列宽就OK。     可当我查看如何禁止修改列宽时,又傻眼了,因为又得对CHeaderCtrl进行重载。  ...
阅读全文
2012-09-11 12:38 工业·编程 ⁄ 共 6121字 暂无评论
一、什么是虚拟列表控件 虚拟列表控件是指带有LVS_OWNERDATA风格的列表控件。。 二、为什么使用虚拟列表控件 我们知道,通常使用列表控件CListCtrl,需要调用InsertItem把要显示的数据插入列表中,之后我们就不必关心数据在哪里了,这是因为控件自己开辟了内存空间来保存这些数据。现在假设我们要显示一个数据库,里面的信息量很大,有几十万条记录。通常有两种方法解决这个问题: 1是仅仅在ListCtrl中插入少量的数据,比如100...
阅读全文
2012-09-09 22:18 工业·编程 ⁄ 共 8901字 暂无评论
(一)列表控制的主要功能   列表控制和视(List Control&View)主要用来以各种方式显示一组数据记录供用户进行各种操作,Windows98/95中资源管理器中的“查看”标签下的“大图标|小图标|列表|详细资源”就是一个非常好的典型应用。列表中的记录可以包括多个数据项,也可以包括表示数据内容的大小图标,用来表示数据记录的 列表控制提供了对Windows列表功能操作的基本方法,而使用列表视的视函数可以对列表视进行各种操...
阅读全文
2012-09-09 22:00 工业·编程 ⁄ 共 4692字 评论 1 条
1。要重绘listctrl表头,则listctrl表现选择为report风格 2。其表头(CHeaderCtrl)可以通过GetHeaderCtrl获取 3。继承CHeaderCtrl类,重绘表头。      有两种方式重绘:      a。重载OnPaint方法,事例代码如下: void CSkinHeaderCtrl::OnPaint() { TRACE("CSkinHeaderCtrl::OnPaint()/n"); CPaintDC dc(this); // device context for painting CRect rect,...
阅读全文
2012-09-08 21:35 工业·编程 ⁄ 共 2227字 暂无评论
//自绘CListCtrl类,重载虚函数DrawItem void CNewListCtrl::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) { // TODO: Add your code to draw the specified item ASSERT(lpDrawItemStruct->CtlType == ODT_LISTVIEW); CDC dc; dc.Attach(lpDrawItemStruct->hDC); ASSERT(NULL != dc.GetSafeHdc()); // Save these value to restore them when done drawing. COLORREF crOldTextColor = ...
阅读全文
// 在CListCtrl控件的父窗口上添加OnNotify虚函数 BOOL CXXXDlg::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult) {    // TODO: Add your specialized code here and/or call the base class    if ((((LPNMHDR)lParam)->code == NM_RCLICK))    {        CPoint pt, pt2;        GetCurs...
阅读全文