В обработчике рисования моего пользовательского элемента управления я перебираю коллекцию предопределенных растровых объектов и отрисовываю их таким образом в клиентскую область:
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 bitblt для замены DrawImageUnscaled?И если да, то как?
Спасибо!
Примечание: поиск в Google для использования BitBlt пока дал мне только образцы экранной шапки ...