資源簡介
實現CListCtrl控件的Item項拖拽效果,本源碼對應的博客鏈接為:http://blog.csdn.net/d704791892/article/details/22600075

代碼片段和文件信息
//?DragListCtrl.cpp?:?實現文件
//
#include?“stdafx.h“
#include?“DragListCtrlDemo.h“
#include?“DragListCtrl.h“
//?CDragListCtrl
IMPLEMENT_DYNAMIC(CDragListCtrl?CListCtrl)
CDragListCtrl::CDragListCtrl()
:?m_nSelItem(-1)
?m_bDragging(FALSE)
?m_pDragImageList(NULL)
{
}
CDragListCtrl::~CDragListCtrl()
{
if?(m_pDragImageList)
{
delete?m_pDragImageList;
m_pDragImageList?=?NULL;
}
}
BEGIN_MESSAGE_MAP(CDragListCtrl?CListCtrl)
ON_NOTIFY_REFLECT(LVN_BEGINDRAG?&CDragListCtrl::OnLvnBegindrag)
ON_WM_LBUTTONUP()
ON_WM_MOUSEMOVE()
END_MESSAGE_MAP()
//?CDragListCtrl?消息處理程序
void?CDragListCtrl::OnLvnBegindrag(NMHDR?*pNMHDR?LRESULT?*pResult)
{
LPNMLISTVIEW?pNMLV?=?reinterpret_cast(pNMHDR);
//?TODO:?在此添加控件通知處理程序代碼
*pResult?=?0;
int?count?=?GetSelectedCount();
if?(1?!=?count)
return;
POSITION?pos?=?GetFirstSelectedItemPosition();
if?(NULL?==?pos)
return;
m_nSelItem?=?GetNextSelectedItem(pos);
if?(-1?==?m_nSelItem)
return;
CPoint?pt?=?pNMLV->ptAction;
m_pDragImageList?=?CreateDragImage(m_nSelItem?&pt);
if?(NULL?==?m_pDragImageList)
return;
m_bDragging?=?TRUE;
m_pDragImageList->BeginDrag(0?CPoint(8?8));
ClientToScreen(&pt);
CRect?rt;
GetParent()->GetWindowRect(&rt);
pt.x?-=?rt.left;
pt.y?-=?rt.top;
m_pDragImageList->DragEnter(GetParent()?pt);
SetCapture();
}
void?CDragListCtrl::OnLButtonUp(UINT?nFlags?CPoint?point)
{
//?TODO:?在此添加消息處理程序代碼和/或調用默認值
if?(m_bDragging)
{
ReleaseCapture();
m_bDragging?=?FALSE;
//m_nSelItem?=?-1;
m_pDragImageList->DragLeave(GetParent());
m_pDragImageList->EndDrag();
m_pDragImageList->DeleteImageList();
delete?m_pDragImageList;
m_pDragImageList?=?NULL;
}
CListCtrl::OnLButtonUp(nFlags?point);
}
void?CDragListCtrl::onmousemove(UINT?nFlags?CPoint?point)
{
//?TODO:?在此添加消息處理程序代碼和/或調用默認值
if?(m_bDragging)
{
CPoint?pt?=?point;
ClientToScreen(&pt);
CRect?rt;
GetParent()->GetWindowRect(&rt);
pt.x?-=?rt.left;
pt.y?-=?rt.top;
m_pDragImageList->DragMove(pt);
}
CListCtrl::onmousemove(nFlags?point);
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2226??2014-03-30?18:58??DragListCtrlDemo\DragListCtrlDemo\DragListCtrl.cpp
?????文件????????534??2014-03-30?19:18??DragListCtrlDemo\DragListCtrlDemo\DragListCtrl.h
?????文件?????105232??2014-03-30?16:23??DragListCtrlDemo\DragListCtrlDemo\DragListCtrlDemo.aps
?????文件???????1783??2014-03-30?15:21??DragListCtrlDemo\DragListCtrlDemo\DragListCtrlDemo.cpp
?????文件????????505??2014-03-30?15:21??DragListCtrlDemo\DragListCtrlDemo\DragListCtrlDemo.h
?????文件???????5318??2014-03-30?16:23??DragListCtrlDemo\DragListCtrlDemo\DragListCtrlDemo.rc
?????文件???????5706??2014-03-30?15:29??DragListCtrlDemo\DragListCtrlDemo\DragListCtrlDemo.vcproj
?????文件???????3965??2014-03-30?17:41??DragListCtrlDemo\DragListCtrlDemo\DragListCtrlDemoDlg.cpp
?????文件????????827??2014-03-30?16:32??DragListCtrlDemo\DragListCtrlDemo\DragListCtrlDemoDlg.h
?????文件???????3031??2014-03-30?15:21??DragListCtrlDemo\DragListCtrlDemo\ReadMe.txt
?????文件??????67777??2007-11-28?16:21??DragListCtrlDemo\DragListCtrlDemo\res\DragListCtrlDemo.ico
?????文件????????372??2014-03-30?15:21??DragListCtrlDemo\DragListCtrlDemo\res\DragListCtrlDemo.rc2
?????文件????????734??2014-03-30?16:23??DragListCtrlDemo\DragListCtrlDemo\resource.h
?????文件????????149??2014-03-30?15:21??DragListCtrlDemo\DragListCtrlDemo\stdafx.cpp
?????文件???????1854??2014-03-30?15:21??DragListCtrlDemo\DragListCtrlDemo\stdafx.h
?????文件???????1030??2014-03-30?15:21??DragListCtrlDemo\DragListCtrlDemo\targetver.h
?????文件????????914??2014-03-30?15:21??DragListCtrlDemo\DragListCtrlDemo.sln
????..A..H.?????13824??2014-03-30?19:21??DragListCtrlDemo\DragListCtrlDemo.suo
?????目錄??????????0??2014-03-30?19:18??DragListCtrlDemo\DragListCtrlDemo\res
?????目錄??????????0??2014-03-30?19:22??DragListCtrlDemo\DragListCtrlDemo
?????目錄??????????0??2014-03-30?19:21??DragListCtrlDemo
-----------?---------??----------?-----??----
???????????????215781????????????????????21
- 上一篇:NISP一級題庫100T
- 下一篇:51單片機8位數碼管動態掃描顯示
評論
共有 條評論