hur.cn - 华软网

 热门搜索

拖动与绘制图像的原理和过程

  作者:未知    来源:网络    更新时间:2011/8/26
    拖动与绘制图像的原理和过程简单介绍下,首先是靠鼠标按下,鼠标移动,鼠标抬起,这3个事件捕获鼠标的拖动,获取其拖动后的新坐标,然后调用InvalidateRect()局部更新函数使拖过的部分区域重绘, 此过程系统调用CDialog的OnPaint消息函数, 将绘制的所有代码放在这中,绘制时,先创建IDC_STATIC控件的背景位图,然后将位图选入绘制背景的内存DC中,接下来,就可以在此DC上绘图.然后再创建拖动图片的内存DC,并将图片选入此DC中,最后两步就是将拖动图片的内存DC bitblt到绘制背景的内存DC上, 然后将绘制背景的内存DC再bitblt到IDC_STATIC控件的DC上.
 

有些看不懂,求大神帮忙解读一下,此过程的具体步骤。
---华软 网友回答---
拖动图片 主要就两个事件吧鼠标按下、鼠标抬起吧,然后记录两点的坐标就可以算出差值呀,然后再根据差值改变图像显示的起点坐标,应该就可以实现图像漫游的目的了吧?我在视类里实现过,对话框应该是一样的吧!
---华软网友回复---
具体哪句不懂了?
你可以想象一下,你拖动图片会做哪些动作,再对照这看,就懂了。
---华软网友回复---
这个我明白,但是好像没有上面那样调用函数方便。我知道些具体的代码,就是不知怎么去添加。你能说说具体的操作步骤吗?我是新手。
---华软网友回复---
怎样获取图片坐标和托动后的新坐标?
---华软网友回复---
引用 4 楼 wangzhongbo_24 的回复:
怎样获取图片坐标和托动后的新坐标?

你的图片都放在IDC_STATIC控件里边是吧?
CRect rect;
GetDlgItem(IDC_STATIC)->GetWindowRect(rect);
GetDlgItem(IDC_STATIC)->ScreenToClient(rect);
这个rect就是相对于主窗口的坐标。
---华软网友回复---
这个你能看懂么
http://blog.csdn.net/xianglitian/article/details/6023656
---华软网友回复---
使用CRectTrack类      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。