首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

怎么实现CListCtrl的拖动效果

2012-01-21 
如何实现CListCtrl的拖动效果已经实现了CListCtrl的拖动,但想要在选中item的move中实现拖动的效果,如移动

如何实现CListCtrl的拖动效果
已经实现了CListCtrl的拖动,  
但想要在选中item的move中实现拖动的效果,
如移动到别的item上时,在该item底下显示一条横线,  
这个该怎么实现呢?

[解决办法]
void CMyList::DrawItem(LPDRAWITEMSTRUCT lpDrst)
{
CDC* pDC = CDC::FromHandle(lpDrst-> hDC);
CString str;


/*条目所在区域无效,重新绘制背景并显示字符串*/
if (lpDrst-> itemAction & ODA_DRAWENTIRE)
{
pDC-> FillRect(&lpDrst-> rcItem, m_pBr);
pDC-> Rectangle(&lpDrst-> rcItem); //让List有横线效果

GetText(lpDrst-> itemID, str); //填充文本
pDC-> SetTextColor(RGB(100, 0, 0));
pDC-> DrawText(str, &lpDrst-> rcItem, DT_VCENTER|DT_SINGLELINE);


}

/*条目被选中后的显示效果*/
if ((lpDrst-> itemState & ODS_SELECTED) && (lpDrst-> itemAction & (ODA_SELECT | ODA_DRAWENTIRE)))
{
CBrush br(RGB(0, 120, 130));
pDC-> FillRect(&lpDrst-> rcItem, &br);

pDC-> SetTextColor(RGB(50, 50, 50));

pDC-> DrawText(str, &lpDrst-> rcItem, DT_VCENTER|DT_SINGLELINE);
}

}

热点排行