如何实现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);
}
}