我想在我刚刚实现的数据库存储图片程序的基础上拖动图片的大小!

是在按下鼠标后出现拖动的标志,然后在图片的右下角拖动图片将其放大.实现对图片的放大或缩小.

http://topic.csdn.net/t/20030106/17/1332155.html

5 楼jishiping(JSP 季世平)回复于 2003-01-06 18:30:16 得分 100其实很简单,不需要写什么程序: 
  1.  设定Image的属性DragKind=dkDock;  DragMode=dmAutomatic;  设定Form 
  的属性DockSite=true。 
  2.  在Image的事件OnEndDock里写一行代码就可以了: 
  void  __fastcall  TForm1::Image1EndDock(TObject  *Sender,  TObject  *Target, 
              int  X,  int  Y) 
  { 
          Image1->HostDockSite  =  (TWinControl*)0xFFFFFFFF; 
  }

不好意思 回答错了,这个是拖动位置的

简单写了一个:

C/C++ code
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { if(X>Image1->Width-10 && Y>Image1->Height-10) { Image1->Cursor=crSizeNWSE; if(Shift.Contains(ssLeft)) { Image1->Width=X; Image1->Height=Y; } } else Image1->Cursor=crDefault; } //—————————————————————————

if(Shift.Contains(ssLeft))
这一句是什么意思?
1.  设定Image的属性DragKind=dkDock;  DragMode=dmAutomatic;  设定Form   
  的属性DockSite=true。
这个方法我尝试过了,但是不我想要的效果,这个相当于又出来了一个FORM。
感谢你们的回答。

我想补充下当鼠标移动到图片的角落的时候出现可以拖动的标识,例如Image1->Cursor=crSizeA然后可以拖动他。
当鼠标按下不放时可以把他移动。这部分功能我基本实现了,但是我不知道如何响应的鼠标压下台起等动作,
还有将图片扩大或缩小的程序原理不是很清楚,
我说的可能比较罗嗦,真诚求教。

如果能用滚轮滚动得到放大和缩小也可以。

我油箱是liu3039345@126.com
希望能有源码。

//使用窗体的滑轮滚动事件,判断鼠标位置,如果在图片上滚动时就放大缩小图片

C/C++ code
void __fastcall TForm1::FormMouseWheel(TObject *Sender, TShiftState Shift, int WheelDelta, TPoint &MousePos, bool &Handled) { POINT P; GetCursorPos(&P); ::ScreenToClient(Handle,&P); if(P.x > Image1->Left && P.x < Image1->Left+Image1->Width && P.y > Image1->Top && P.y < Image1->Top+Image1->Height) { if(WheelDelta<0) {//下滚放大 Image1->Width=Image1->Width+1; Image1->Height=Image1->Height+1; } else {//上滚缩小 Image1->Width=Image1->Width-1; Image1->Height=Image1->Height-1; } } } //—————————————————————————

谈谈数字图像的缩放算法
http://rockcarry.home.sunbo.net/show_hdr.php?xname=AHAETV0&dname=IGB7831&xpos=2

up

谢谢,我会尝试,继续求教.

放到paintbox里好点吧。

友情Up!