CEffectList继承基类clistctrl

程序运行效果如下,使用的VS2013

要注意的地方,假如要将控件拖出窗口以外的地方,需要修改拥有拖拽窗口的属性:m_pDragImageList->DragEnter(NULL, pt);改为NULL即可,需要只在父窗口中

运行,则把NULL替换成GetParent()


void CEffectList::OnLvnBegindrag(NMHDR *pNMHDR, LRESULT *pResult)

{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
// TODO:  在此添加控件通知处理程序代码
*pResult = 0;

int count = GetSelectedCount();
if (1 != count)
return;
POSITION pos = GetFirstSelectedItemPosition();
if (pos == NULL)
{
return;
}

m_nSelItem = GetNextSelectedItem(pos);

if (-1 == m_nSelItem)
return;

CPoint pt = pNMLV->ptAction;
m_pDragImageList = CreateDragImage(m_nSelItem, &pt);
if (m_pDragImageList == NULL)
{
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 CEffectList::OnLButtonDown(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::OnLButtonDown(nFlags, point);
}

void CEffectList::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO:  在此添加消息处理程序代码和/或调用默认值
if (m_bDragging)
{
CPoint pt = point;
ClientToScreen(&pt);

CRect rt;
GetParent()->GetWindowRect(&rt);
pt.x -= rt.left+20;
pt.y -= rt.top+20;
m_pDragImageList->DragMove(pt);
}

CListCtrl::OnMouseMove(nFlags, point);
}

void CEffectList::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);
}

MFC中listctrl图片拖拽效果相关推荐

  1. html设置图片不可拖拽,js css3实现图片拖拽效果

    本文实例为大家分享了css3实现图片拖拽效果的具体代码,供大家参考,具体内容如下 body{ text-align: center; } .container{ display: flex; just ...

  2. html js点击字图片下拉,JavaScript实现文字与图片拖拽效果的方法

    本文实例讲述了JavaScript实现文字与图片拖拽效果的方法.分享给大家供大家参考.具体实现方法如下: JavaScript实现文字与图片的拖拽效果 *{padding:0;margin:0;} . ...

  3. MFC中窗口实现拖拽文件功能

    MFC窗口拖拽文件功能指的是用鼠标将文件拖拽入窗口后,在窗口中可以获取拖拽文件的绝对路径,如图1所示. 图1 文件拖拽功能 实现窗口的拖拽文件功能,首先要将窗口注册为放置拖拽文件的目标,之后在窗口中响 ...

  4. js实现图片拖拽效果

    没拖拽之前 <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8 ...

  5. WinForm支持拖拽效果

    有一个MSDN客户提问在WinForm中如何实现拖拽效果--比如在WinForm中有一个Button,我要实现的效果是拖拽这个Button到目标位置后生成一个该控件的副本. 其实这个操作主要分成三步走 ...

  6. unity3D如何实现2D sprite,3D物品和UI图片的拖拽效果

    [Unity学习笔记] (一)如何实现2d sprite和3D物品的拖拽效果 1.调节camera >- Projection到Orthographic模式 Unity camera proje ...

  7. 【加强版】js原生实现拖拽效果,这次没有用document的mousedown、mousemove、mouseup事件我们来点实际的(但是有个弊端:拖拽过程中鼠标会变成一个禁用符号,不太友好)

    <div class='dragged'></div> //初始化需要拖拽的列initDrags() {var arr = document.querySelectorAll( ...

  8. 不一样的 9 宫格图片展示,仿 Nice 首页图片列表 9 图样式,并实现拖拽效果

    ImageNice9Layout 项目地址:wobiancao/ImageNice9Layout  简介:不一样的 9 宫格图片展示,仿 Nice 首页图片列表 9 图样式,并实现拖拽效果 写在开头: ...

  9. Vue中实现拖拽效果

    Vue2项目中遇到需求要求页面左侧部分实现拖拽效果 实现效果: 1665739151500 实现代码: 一.使用盒子包裹需要拖拽的区域,并绑定ref 二.使用$ref获取DOM信息 具体代码(这个方法 ...

最新文章

  1. 第八章-数据类、结构
  2. 流利说递交招股书:上半年亏1.8亿 王翌持股27.9%
  3. mysql 有always on么,mysql 关于时间类型的刨坑之路
  4. ORACLE expdp/impdp详解
  5. python如何对excel两个单元格求乘积_excel表格怎么求乘积_excel表格多个单元格怎么求积...
  6. haproxy开启日志功能
  7. 现在做抖音书单挣钱吗?
  8. 安卓 App 库存系统开发 基础版本
  9. UVA 1324 The Largest Clique 最大团(强连通分量,变形)
  10. 对二宝软件的NABCD分析
  11. 无法嵌入互操作类型“Microsoft.Office.Interop.Excel.ApplicationClass”。请改用适用的接口 ....
  12. 梁勇:展望 2017年商业智能BI 发展的趋势
  13. WPF利用NotifyIcon创建任务栏图标(菜鸟教程)
  14. 八数码问题【人工智能实验】
  15. [状压dp][BZOJ3717][PA2014]Pakowanie
  16. 红黑树和二叉树有什么区别?
  17. LaTeX给表格的一整行加删除线(横线)
  18. 第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛题解
  19. 【旅游类APP源码】开发者案例开源,走过路过不可错过!
  20. Python 让蔡徐坤在我的命令行里打篮球!

热门文章

  1. 海量数据分布式存储技术-作业五
  2. 谷歌pay 手续费_您可以使用Google Pay进行的所有操作
  3. PPP中常用定位和误差模型
  4. Multisim基础 示波器 波形沿Y轴正方向上移一格
  5. 云宏Ceph分布式存储高性能设计
  6. android 仿微信朋友圈发布动态功能
  7. NLP自然语言处理—主题模型LDA案例:挖掘人民网留言板文本数据
  8. [LOJ 5516]无聊的数对
  9. MCS-51单片机指令系统--数据传送指令
  10. OpenCV图像处理之基于积分图实现NCC快速相似度匹配