
CListCtrl
tobealv
这个作者很懒,什么都没留下…
展开
-
ClistCtrl虚拟列表实现按键查找
响应LVN_ODFINDITEM.以下为例子://This functions is called when the user "writes" in the list box to find an item.void CVirtualListDlg::OnOdfi原创 2011-08-12 09:11:58 · 1291 阅读 · 0 评论 -
CListCtrl的多行删除
1.普通ListCtrl和虚拟列表都可以采用下面的方式删除多行int nSelItem = listctrl.GetNextItem(-1,LVNI_SELECTED);while (nSelItem != -1){ listctrl.DeleteItem(nSelItem);nSelItem = listctrl.GetNextItem(-1,LVNI_SELECTED);原创 2011-07-04 11:24:29 · 893 阅读 · 0 评论 -
模拟单击ClistCtrl消息
NMITEMACTIVATE NMItemAct; NMItemAct.iItem = nItem; NMItemAct.iSubItem = nSubItem; NMHDR hdr; hdr.hwndFrom = m_listTime.m_hWnd; hdr.id原创 2011-10-28 19:39:13 · 1066 阅读 · 0 评论 -
CListCtrl选中行
1、设置CListCtrl选中行m_list.SetItemState(nIndex,LVIS_FOCUSED | LVIS_SELECTED,LVIS_FOCUSED | LVIS_SELECTED);注意:这句代码只是让指定行高亮显示,如果使用后再用GetSelectionMark函数来得到选中行,结果往往是错误的。比如,先用鼠标点击选中第5行,调用GetSelectionMark函数转载 2011-10-27 12:57:31 · 970 阅读 · 0 评论 -
CListCtrl双击列头改变宽度
LRESULT CListCtrlTip::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) { if (WM_NOTIFY == message) { NMHEADER *pHDN = (LPNMHEADER)lParam; switch(((NMHDR*)lParam)->原创 2012-11-01 16:02:43 · 1317 阅读 · 0 评论 -
改变CListCtrl列的最大文字长度
CListCtrl每列默认最多只能显示260个字符,用以下方法可以扩展。(1)重载虚函数DrawItemvirtual void DrawItem( LPDRAWITEMSTRUCT lpDrawItemStruct );void CListCtrlTip::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct){ CDC* pDC =原创 2012-11-01 15:57:55 · 2219 阅读 · 1 评论 -
防止CListCtrl闪烁的几种方法
//……//恢复窗口重绘m_ctlList.SetRedraw(TRUE); 2.使用LockWindowUpdate禁止窗口重绘,操作完成后,用UnlockWindowUpdate恢复窗口重绘m_ctlList.LockWindowUpdate();//原创 2010-11-07 16:49:00 · 710 阅读 · 0 评论 -
CListCtrl最后一列自适应宽度
最后一列调用SetColumnWidth时,第二个参数设置为LVSCW_AUTOSIZE_USEHEADER。原创 2015-08-26 21:05:09 · 2381 阅读 · 1 评论 -
隐藏CListCtrl滚动条
今天做自绘CListCtrl的滚动条,需要先隐藏CListCtrl的自带滚动条,然后再将自己绘制的继承自CStatic的类,封装成滚动条,移动到CListCtrl原滚动条所在位置即可。但是遇到个头疼的问题,CListCtrl的滚动条隐藏不了。查询了好多资料,终于找到了答案:(以下文章摘自 http://blog.sina.com.cn/s/blog_48f93b530100eg3z.htm转载 2015-08-28 22:55:02 · 2542 阅读 · 0 评论 -
CListCtrl的复选框只有在常规的insertItem中才有效。
CListCtrl的复选框只有在常规的insertItem中才有效。原创 2011-04-04 18:15:00 · 624 阅读 · 0 评论 -
CListCtrl插入记录后,解决按序号的1.11.12...2.21..这样排列的问题
1. 去掉LVS_SORTASCENDING风格2. InserItem不要老是用InsertItem(0,....),这样永远是在第一个位置插入,而应当用InsertItem(i++,...)的形式原创 2011-03-15 09:40:00 · 987 阅读 · 0 评论 -
listctrl排序
只需要把LVS_SORTASCENDING属性去掉原创 2010-11-19 13:53:00 · 621 阅读 · 0 评论 -
CListCtrl在SetImageList之后,如何去掉图像;;如何改变ClistCtrl行高
有时候在程序中需要动态的让CListCtrl显示或不显示前面的图像。通常设置图像可以这样: CImageList ImageList; ImageList.Create(IDB_AFFIX, 16, ILC_MASK, RGB(255, 2原创 2011-04-28 08:56:00 · 1838 阅读 · 0 评论 -
虚拟列表第一列显示图标的办法
1. 加载图像 /* 加载图像 */ m_imageList.Create(16,16,ILC_COLOR32|ILC_MASK,2,2); m_imageList.Add(AfxGetApp()->LoadIcon(IDI_ICONNOLIN原创 2011-03-16 16:36:00 · 744 阅读 · 0 评论 -
怎样让clistctrl禁止显示水平滚动条,但可以显示垂直滚动条
搞定右键控件属性设置中将no scroll选中。 if(m_lst_ip.GetItemCount( ) > 22){ SCROLLINFO si;si.cbSize = sizeof( SCROLLINFO );si.fMask = SIF_PAGE | SIF_RANGE; si.nMin = 0;si.nMax = m_lst转载 2015-08-31 23:38:02 · 6292 阅读 · 0 评论