WinXP .NET MFC です。
リストビューのドラッグ&ドロップで、マウスポインタの下に移動させるテキストのイメージを表示させようと思いました。
1行だけのドラッグ&ドロップであれば、下記コードでうまくいくのですが、m_pDragImage に複数行を収納させることができません。
アドバイスをお願いいたします。
(各変数の宣言は省略しました。ソースファイルは、CListCtrlのサブクラスです)
void CmyListCtrl::OnLButtonDown(UINT nFlags, CPoint point)
{
iLow = HitTest(point);
CListCtrl::OnLButtonDown(nFlags, point);
}
void CmyListCtrl::OnMouseMove(UINT nFlags, CPoint point)
{
if (m_bDrag)
{
POINT pt = point;
ClientToScreen( &pt );
CImageList::DragMove(pt);
}
CListCtrl::OnMouseMove(nFlags, point);
}
void CmyListCtrl::OnLvnBegindrag(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
if( !(m_pDragImage = CreateDragImage(iLow, &pPoint)) )
{
return;
}
m_bDrag = TRUE;
m_pDragImage->BeginDrag(0, CPoint(0, 0));
ClientToScreen( &pPoint );
m_pDragImage->DragEnter(NULL, pPoint);
SetCapture();
*pResult = 0;
}
ツイート | ![]() |