<b>C++Builder中大尺寸图象的显示本领</b>[VC/C++编程]
本文“<b>C++Builder中大尺寸图象的显示本领</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在C++Builder中操纵TImage控件可以轻松地读入并显示图象,但TImage 控件本身不可以接纳输入核心,也没带有转动条,在显示超越显示区域范围的大图象时,需求对TImage控件举行加强.本文提出两种最简单实现且有效的办法,满意差别利用的需求.
办法一:增添转动条.
增添转动条可以通过将TImage放在TScrollBox控件中来实现.步骤以下:
(1)、在窗体中安排一个TScrollBox控件,调整好其尺寸.
(2)、设置TScrollBox控件的AutoScroll属性为True.
(3)、在TScrollBox控件是安排一个TImage控件.
(4)、设置TImage控件的属性:AutoSize为True,Left为0,Top为0.经以上加强之后,假如TImage的图象比显示窗口大,转动条会自动呈现,假如图象小于显示窗口,转动条自动消逝,实现了大图象的浏览.
办法二:图象环游.
图象环游是指不用转动条,通过键盘大概鼠标掌握图象的移动,从而在较小的显示区域内可以浏览图象的任何部份.下面以鼠标掌握为例阐明.
(1)、在窗体中安排一个TPanel控件,调整好其尺寸.
(2)、在TPanel控件是安排一个TImage控件.
(3)、设置TImage控件的AutoSize属性为True,Left属性为0,Top属性为0.
(4)、在TForm1的类定义中加两个私有变量:intiX0,iY0;
(5)、呼应TImage控件的OnMouseDown和OnMouseMove事件.
void__fastcallTForm1::Image1MouseDown(TObject*Sender,
TMouseButtonButton,TShiftStateShift,intX,intY)
{
iX0=X;
iY0=Y;
}
void__fastcallTForm1::Image1MouseMove
(TObject*Sender,TShiftStateShift,intX,intY)
{
intiDeltaX,iDeltaY;
if(Shift.Contains(ssLeft))
{
iDeltaX=X-iX0;
iDeltaY=Y-iY0;
if(iDeltaY)
Image1->Left+=iDeltaX;
if(iDeltaY)
Image1->Top+=iDeltaY;
}
}
(6)、运行时按住鼠标左键拖动,图象将跟随移动.
(7)、假如通过键盘掌握,只需参考鼠标掌握的代码,加入键盘掌握便可.
(8)、实际利用时,按照需求加入边界限制,保证图象不会被移出显示区域之外.
以上两种办法在本人开辟的软件当中多次利用,效果很好.
以上是“<b>C++Builder中大尺寸图象的显示本领</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |