|
本帖最后由 mall 于 2013-11-10 19:06 编辑
33.在ListCtrl中OnTimer只响应两次的问题Q200054:
PRB: OnTimer() Is Not Called Repeatedly for a List Control
http://support.microsoft.com/kb/200054/en-us
34.以下为一些为实现各种自定义功能的listctrl派生类 (1) 拖放
http://www.codeproject.com/listctrl/dragtest.asp
在CListCtrl和CTreeCtrl间拖放
http://support.microsoft.com/kb/148738/en-us
(2) 多功能listctrl
支持subitem可编辑,图标,radiobutton,checkbox,字符串改变颜色的类
http://www.codeproject.com/listctrl/quicklist.asp
支持排序,subitem可编辑,subitem图标,subitem改变颜色的类
http://www.codeproject.com/listctrl/ReportControl.asp
(3) subitem中显示超链接
http://www.codeproject.com/listctrl/CListCtrlLink.asp
(4) subitem的tooltip提示
http://www.codeproject.com/listctrl/ctooltiplistctrl.asp
(5) subitem中显示进度条
http://www.codeproject.com/listctrl/ProgressListControl.asp
http://www.codeproject.com/listctrl/napster.asp
http://www.codeguru.com/Cpp/controls/listview/article.php/c4187/
(6) 动态改变subitem的颜色和背景色
http://www.codeproject.com/listctrl/highlightlistctrl.asp
http://www.codeguru.com/Cpp/controls/listbox/colorlistboxes/article.php/c4757/
(7) 类vb属性对话框
&bsp; http://www.codeproject.com/listctrl/propertylistctrl.asp
http://www.codeguru.com/Cpp/controls/listview/propertylists/article.php/c995/
http://www.codeguru.com/Cpp/controls/listview/propertylists/article.php/c1041/
(8) 选中subitem(只高亮选中的item)
http://www.codeproject.com/listctrl/SubItemSel.asp
http://www.codeproject.com/listctrl/ListSubItSel.asp
(9) 改变行高
http://www.codeproject.com/listctrl/changerowheight.asp
(10) 改变行颜色
http://www.codeproject.com/listctrl/coloredlistctrl.asp
(11) 可编辑subitem的listctrl
http://www.codeproject.com/listctrl/nirs2000.asp
http://www.codeproject.com/listctrl/editing_subitems_in_listcontrol.asp
(12) subitem可编辑,插入combobox,改变行颜色,subitem的tooltip提示
http://www.codeproject.com/listctrl/reusablelistcontrol.asp
(13) header 中允许多行字符串
http://www.codeproject.com/listctrl/headerctrlex.asp
(14) 插入combobox
http://www.codeguru.com/Cpp/controls/listview/editingitemsandsubitem/article.php/c979/
(15) 添加背景图片
http://www.codeguru.com/Cpp/controls/listview/backgroundcolorandimage/article.php/c4173/
http://www.codeguru.com/Cpp/controls/listview/backgroundcolorandimage/article.php/c983/
http://www.vchelp.net/vchelp/archive.asp?type_id=9&class_id=1&cata_id=1&article_id=1088&search_term=
(16) 自适应宽度的listctrl
http://www.codeproject.com/useritems/AutosizeListCtrl.asp
(17) 改变ListCtrl高亮时的颜色(默认为蓝色)
处理 NM_CUSTOMDRAW
http://www.codeproject.com/listctrl/lvcustomdraw.asp
//2009-05-06
35. 隐藏滚动条
void CListView_ScrollBarView::OnSize(UINT nType, int cx, int cy)
{
CListCtrl & ctrl = this->GetListCtrl ();
if (ctrl)
{
//隐藏垂直滚动条
::ShowScrollBar( ctrl.m_hWnd, SB_VERT, FALSE);
}
CListView::OnSize(nType, cx, cy);
}
//2009-05-07
36.处理键盘,循环滚动,不要在对话框中处理该消息,否则WListCtrlEx会产生两次按键事件
BOOL WListCtrlEx: reTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/orcall the base class
if (pMsg->message ==WM_KEYDOWN)
{
if (pMsg->wParam== VK_DOWN)
{
int nSel =GetNextItem(-1, LVNI_SELECTED);
if (nSel ==-1)
returnFALSE;
if (nSel ==GetItemCount()-1)
{
EnsureVisible(0,FALSE); //滚动条自动滚动到第80行
SetItemState(0,LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);
returnTRUE;
}
}
if (pMsg->wParam== VK_UP)
{
int nSel =GetNextItem(-1, LVNI_SELECTED);
if (nSel ==-1)
returnFALSE;
if (nSel ==0)
{
EnsureVisible(GetItemCount()-1,FALSE); //滚动条自动滚动到第80行
SetItemState(GetItemCount()-1,LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);
returnTRUE;
}
}
}
returnCListCtrl: reTranslateMessage(pMsg);
}
本文摘自:http://blog.sina.com.cn/s/blog_4171e80d0100ynch.html
|
|