实现鼠标拖动图像
来源:互联网 发布:淘宝店铺新店扶持流量 编辑:程序博客网 时间:2024/05/21 09:20
实现鼠标拖动图像
图像列表控制(CImageList)是相同大小图像的一个集合,每个集合中均以0为图像的索引序号基数,图像列表通常由大图标或位图构成,其中包含透明位图模式。可以利用WINDOWS32位应用程序接口函数API来绘制、建立和删除图像,并能实现增加、删除、替换和拖动图像等操作。图像列表控制提供了控制图像列表的基本方法,这些方法在WINDOWS95及以后版本才能实现。
一)将图像移动到另一个位置,并保证原来图像的位置不变---ImageMove
首先在同一位置出创建两个一模一样的Picture控件。当单击一个控件时就获取该可以拖拽的图像,进行一个虚拟图像的拖动,松开鼠标后,即将另个一模一样的控件放在了指定的位置,而虚拟图像消失。
OnLButtonDown:
1、创建一个要移动的虚拟图像
2、设置标志位,表示已经选择图像,可以进行拖动
3、设置起始位置的偏移量(相对于图像左上角的)
4、m_imgDrag.DeleteImageList(); //下一次移动操作时可以不产生异常
5、m_imgDrag.Create(rectPic.Width(), rectPic.Height(), ILC_COLOR32|ILC_MASK, 0, 1);
//创建一个图像列表控制
6、m_imgDrag.Add(&bitmapTemp, pOldBitmap); //将选中的图像加入到图像列表控制
7、m_imgDrag.BeginDrag(0, m_ptOffset); //开始进行拖拽
8、m_imgDrag.DragEnter(NULL, ptPut); //锁定图像,并显示
9、SetCapture(); ) //捕获鼠标消息
OnMouseMove:
1、ClientToScreen(&m_ptMove);
2、CImageList::DragMove(m_ptMove); //拖拽图像
OnLButtonUp:
1、获取鼠标位置,并进行转化,移动第二个Picture控件到该位置
2、CImageList::DragLeave(this); //释放图像的拖动
3、CImageList::EndDrag(); //结束图像拖动
4、ReleaseCapture(); //释放捕获鼠标消息
5、更新第二个控件
6、置标志位,拖动结束
二)只是将控件移动
将一)OnLButtonUp中的第二个控件换位第一个控件即可,此功能只需要一个控件
三)只需要一个控件就可以实现功能一)---ImageMoveOneCtrl
1、只需修改一)OnLButtonUp函数,在该函数中实现一个屏幕坐标与用户坐标的转换,释放CImageList,并置子对话框重画位,子对话框RedrawWindow();
2、在子对话框中重载OnPaint函数,将选中的位图控件中的内容贴到鼠标抬起时的位置
- 实现鼠标拖动图像
- jquery实现鼠标拖动
- 实现鼠标拖动代码
- pictureBox 鼠标拖动图像闪烁问题
- JavaScript实现鼠标拖动方块
- c# 实现鼠标拖动form
- wxpython实现鼠标拖动事件
- HTML--如何实现通过鼠标事件拖动页面图像(代码)
- HTML--如何实现通过鼠标事件拖动页面图像(代码)
- ucGUI鼠标拖动实现(DockDrop实现)
- Control Study -> 实现:用鼠标拖动图片
- Control Study -> 实现:用鼠标拖动图片
- Control Study -> 实现:用鼠标拖动图片
- Javascript实现div的鼠标拖动
- C#实现窗体的鼠标拖动代码
- Silverlight不响应鼠标实现拖动效果
- unity3D C#脚本实现鼠标拖动物体
- js 实现鼠标拖动的div层
- yum命令的使用方法
- [学习笔记] PB数据窗口绝对技巧
- 【转载】今天的过了很久的即时通讯
- 18、C++运算符重载之++ -- [ ]
- 编译hive时遇到 failed to create task or type osfamily问题
- 实现鼠标拖动图像
- 享元模式java + javascript
- 基于TCP的客户端,服务器端上传文本文件的功能Demo
- UVa 11404 - Palindromic Subsequence DP LCS---------无限WA
- http的介绍及其工作原理
- 19、C++运算符重载之自定义类型转换
- Asp.Net 相关学习
- linux系统硬件配置查看方法
- android repo 切换分支