怎样拖拽自己用Canvas画的图形啊?(在线等) 我用canvsa画出了一些图像元件,想拖拽,放大,大家有没有思路啊?现奉上50分,若解决,再加300! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以按以下方法做:1:要有一个label autoszie:=false;transparent:=true;2:起码你要知道你要拖拽的区域(rect);把那个rect 设为label的rect;3:然后你控制label的size(在拖拽过成中)when you stop drag(发生在label的mouseup event 中) 你把你原来的图片拷贝到current label 的rect; at end label.visible:=false; 这需要按照矢量软件的编程思路----------------------------论坛是否有回复,BBSMonitor帮你忙http://www.bbsmonitor.comTCADhttp://www.codeidea.com to fhb 能说具体些吗? 用shape是不是好点...楼主做什么, 搞个mo的盗版用用 拖拽: 记住拖前的图像的位置和拖后的位置,异或重画放大: 可用MulDiv(Value, Scale, 100) 你的图象画在什么上了??如果画在控件上的话,可以拖动控件实现对他的拖拽,放大时就按照控件的尺寸重画既可。用DELPHI+OPENGL也可以实现。 很简单一个问题让你们搞得这样复杂了。就用一个 TPaintBox 在内存中建一 TBitmap 与这个别 PaintBox 一样大小。画图时先画在 Bitmap 上。再 BitBlt 在 PaintBox 上。每个画形有两个点鼠标点下时记下这个点,移动时根据当前点与第一次的点画出图形,放开时,再画一次。 OK!关于中间的橡皮线效果有两个方法一是用 pmNotXor 方式来画,画一次就显示出来,再画一次就消失。二用一临时 Bmp 画前先把 画布的内容 BitBlt 再这个临时BMP 上。先在 临时BMP 上画。完成时再画在原画上。 把那些控件的思想扔一边去,就会有思路了,GUI程序很简单,相应消息,往窗体上画东西,就这么简单~~~比如移动,移动后不应该是直接画到窗体上,而是根据移动后位图的变化,改变一个缓存位图的内容,然后再画.用个List管理各个要移动的对象,每个移动的对象包括位图内容和坐标,移动就是在逻辑上改变各个对象的坐标,然后输出到缓存位图即可. 删除数据库问题!在线等! ■父代对象、父代窗口、owner之间有什么区别和联系? 怎样获得二维动态数据的长度 EDIT一得到焦点就选取全部内容?(只得这么多了) 原本以为解决的问题,没想到还没搞定 AddPrinter使用 那位高手能给我实现以下树的添加、删除节点功能? 我用clientdataset1.GetNextPacket下载资料时,如何让我知道全部的数据包已下载完毕,并结束getnextpacket,请高手指点。 怎样才能使装98的机器能访问局域网中安装2000的机器上的共享文件? 如何根据下列条件获取外部应用程序的句柄 帮我看看下面的代码那里错了 滚动文字显示闪烁问题???
1:要有一个label autoszie:=false;transparent:=true;
2:起码你要知道你要拖拽的区域(rect);把那个rect 设为label的rect;
3:然后你控制label的size(在拖拽过成中)when you stop drag(发生在label的mouseup event 中) 你把你原来的图片拷贝到current label 的rect; at end label.visible:=false;
论坛是否有回复,BBSMonitor帮你忙
http://www.bbsmonitor.comTCAD
http://www.codeidea.com
能说具体些吗?
记住拖前的图像的位置和拖后的位置,异或重画
放大:
可用MulDiv(Value, Scale, 100)
如果画在控件上的话,可以拖动控件实现对他的拖拽,放大时就按照控件的尺寸重画既可。
用DELPHI+OPENGL也可以实现。
在内存中建一 TBitmap 与这个别 PaintBox 一样大小。画图时先画在 Bitmap 上。再 BitBlt 在 PaintBox 上。每个画形有两个点
鼠标点下时记下这个点,移动时根据当前点与第一次的点画出图形,
放开时,再画一次。 OK!关于中间的橡皮线效果有两个方法
一是用 pmNotXor 方式来画,画一次就显示出来,再画一次就消失。
二用一临时 Bmp 画前先把 画布的内容 BitBlt 再这个临时BMP 上。先在 临时BMP 上画。
完成时再画在原画上。