继续请问。还是图片查看有关问题
继续请教。。还是图片查看问题
为什么用windows自带的图片查看器显示大图,拖动图片不卡,很顺畅,而自己用bcb做的图片查看器 移动Image1却很卡?哪里出错了
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
// Image1->Cursor=crHandPoint;
int MaxXMove = 0;
int MaxYMove = 0;
int MinXMove = ScrollBox1->Width - Image1->Width;
int MinYMove = ScrollBox1->Height - Image1->Height;
int XMove = Image1->Left + (X - iX);
int YMove = Image1->Top + (Y - iY);
if (MouseDown)
{
if (Image1->Width >ScrollBox1->Width && XMove>=MinXMove && XMove<=MaxXMove)
Image1->Left=XMove;
if (Image1->Height>ScrollBox1->Height && YMove>=MinYMove && YMove<=MaxYMove)
Image1->Top=YMove;
}
}
------解决思路----------------------
可能是实现原理不一样,一般的图像处理软件都是用两个图进行局部复制,不过你的这个方法我用过了,并不卡
------解决思路----------------------
用BitBlt试试
------解决思路----------------------
你试试建一个图像类,把原始图像载入其中,然后用的时候把图像复制过去显示
显示的话不一定用image,用所有带画布的都可以
------解决思路----------------------
在你Image所属Form->DoubleBuffered = true;
为什么用windows自带的图片查看器显示大图,拖动图片不卡,很顺畅,而自己用bcb做的图片查看器 移动Image1却很卡?哪里出错了
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
// Image1->Cursor=crHandPoint;
int MaxXMove = 0;
int MaxYMove = 0;
int MinXMove = ScrollBox1->Width - Image1->Width;
int MinYMove = ScrollBox1->Height - Image1->Height;
int XMove = Image1->Left + (X - iX);
int YMove = Image1->Top + (Y - iY);
if (MouseDown)
{
if (Image1->Width >ScrollBox1->Width && XMove>=MinXMove && XMove<=MaxXMove)
Image1->Left=XMove;
if (Image1->Height>ScrollBox1->Height && YMove>=MinYMove && YMove<=MaxYMove)
Image1->Top=YMove;
}
}
------解决思路----------------------
可能是实现原理不一样,一般的图像处理软件都是用两个图进行局部复制,不过你的这个方法我用过了,并不卡
------解决思路----------------------
用BitBlt试试
------解决思路----------------------
你试试建一个图像类,把原始图像载入其中,然后用的时候把图像复制过去显示
显示的话不一定用image,用所有带画布的都可以
------解决思路----------------------
在你Image所属Form->DoubleBuffered = true;