В обработчике красок моего пользовательского элемента управления я выполняю итерации по набору предопределенных Растровых объектов и тяну их к клиентской области таким образом:
Версия C#:
private void Control_Paint(object sender, PaintEventArgs e) {
Graphics g = e.Graphics;
foreach (BitmapObj bmpObj in _bitmapObjCollection) {
g.DrawImageUnscaled(bmpObj.Bitmap, bmpObj.Location);
}
}
Версия VB.NET:
Private Sub Control_Paint(ByVal sender As Object, ByVal e As PaintEventArgs) Handles MyBase.Paint
Dim g As Graphics = e.Graphics
For Each bmpObj As BitmapObj In _bitmapObjCollection
g.DrawImageUnscaled(bmpObj.Bitmap, bmpObj.Location)
Next
End Sub
Код хорошо работает, но начинает срывать, когда приблизительно дюжина объектов добавляется к набору. Мой вопрос: существует ли способ ускорить это? Было бы возможно использовать функцию пересылки битовой строки Win32 для замены DrawImageUnscaled? И раз так как?
Спасибо!
Примечание: Поиск с помощью Google для useage BitBlt только привел ко мне образцы снимка экрана до сих пор...