2010-04-05 5 views
0

J'écris un contrôle où il y a beaucoup de dessin personnalisé qui passe. Pour cette raison, je dois réduire le nombre de "écritures d'écran" qui se passe. Actuellement, il n'y a qu'un seul DC de mémoire qui est utilisé pour écrire à l'écran afin d'éviter le scintillement lorsque le contrôle est redessiné. Je veux savoir si c'est une possibilité d'utiliser 2 ou plusieurs DC de mémoire pour écrire des mises à jour de manière indépendante et ensuite les mettre en bit à l'écran. De cette façon, le besoin de rendre les parties non modifiées de l'écran est minimisé.Combinaison de 2 DC mémoire?

Répondre

0

Vous pouvez utiliser un certain nombre de contrôleurs de domaine distincts, mais tous écrivant dans le même bitmap. Dans ce cas, vous obtiendrez une politique de "dernière écriture gagnée", c'est-à-dire que la dernière écriture dans un emplacement donné de l'image bitmap sera celle qui apparaîtra dans l'image finale.

Cela ne vous rapportera pas grand-chose (à tout le moins) en termes de dessin réduit à l'écran. OTOH, un BitBlt est généralement assez rapide pour que cela fasse peu de différence.

0

Vous pouvez créer autant de contrôleurs de domaine que vous le souhaitez, en préparant une partie de l'écran en un, BitBlt() en transmettant son contenu à un autre contrôleur de domaine, puis BitBlt() à l'écran ou autre. vous voulez (dans les limites de Windows de nr de poignées, etc évidemment). Je suis d'accord avec le commentaire ci-dessus mais il est peu probable que cela vous donne des gains de vitesse. Là où je l'utilise, c'est parfois lorsque les zones sont complexes, les zones à mettre à jour, cela peut parfois faire économiser beaucoup de calculs de localisation.

Questions connexes