我有一个窗体,其中包含一个微调和一个空白区域,我将绘制图像与滑块上设置的比例。图像路径是在表单加载并且不会更改时创建的。目前我使用像这样显示图像:更快的图像加载在C + +形式
void drawImages(void)
{
//...
clearImages();
for each(String ^image in images)
{
box = gcnew PictureBox;
box->Name = "pictureBox" + i.ToString(); //Used when deleting.
// setting properties snipped
box->Image = Image::FromFile(image);
Controls->Add(box);
}
}
而这里的清除码,有线到“值改为”微调的事件和形式的“调整”事件:
void clearImages(void)
{
for(int i=0; i<images->Count; ++i)
Controls->RemoveByKey("pictureBox" + i.ToString());
}
问题是,他们的照片花了很长时间重新加载和闪烁,因为这一点。有没有办法补救?我想知道的一个改进就是在用户从旋转器中提起鼠标时重新绘制图像,而不是每次改变时都重绘它。
因为您删除并添加了控件,所以它会闪烁。这需要很长时间,因为您重新加载图像。当您调整表单的大小时,这当然不是您想要做的事情。调整图片框的大小,必要时不要重新创建它们。不知道微调者做了什么。 – 2011-03-20 21:24:05
用于设置图像的比例。当您增加比例时,图像会变大,并以不同的布局重新绘制。 – 2011-03-20 21:44:42
是的,调整控件的大小,不要重新创建它。容易做与锚属性。我之前提到过使用OnPaint吗? – 2011-03-20 21:55:10