如何拖动Form上的Image控件,更改整个Form滚动条的位置

dxgxk 2008-03-21 11:31:40
把一个Image控件放到Form上,Image的AutoSize设置成ture,加载图片后,由于图片大小超过此Form的大小,Form会自动出现两个滚动条,拖动滚动条可观看图片的全部。

想问一下:如何用鼠标拖动图片观看??不是改变Image的位置,而是改变Form滚动条的位置,因为图片上面还有别的控件,这些控件的位置和图片(地图)的位置是固定的。
...全文
193 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
我不懂电脑 2008-03-21
  • 打赏
  • 举报
回复
没看懂。
dxhh99 2008-03-21
  • 打赏
  • 举报
回复


int OldX,OldY;
bool Flag;


void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
if(Flag)
{
if(X>OldX)
{
ScrollBox1->HorzScrollBar->Position=ScrollBox1->HorzScrollBar->Position-5;

}
else
{
ScrollBox1->HorzScrollBar->Position=ScrollBox1->HorzScrollBar->Position+5;
}
if(Y>OldY)
ScrollBox1->VertScrollBar->Position=ScrollBox1->VertScrollBar->Position-5;
else
ScrollBox1->VertScrollBar->Position=ScrollBox1->VertScrollBar->Position+5;
}
}

void __fastcall TForm1::Image1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{

OldX= X;
OldY= Y;
Flag= true;
}



void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
Flag=false;

}
Jikycc 2008-03-21
  • 打赏
  • 举报
回复
把Image放在ScrollBox上

拖动图片的时候通过按下鼠标后鼠标的偏移量来改变ScrollBox的Position

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧