Urgent...
Que les grands pontes du VC++ ne m'en veuillent pas pour la naïveté de ma question mais je voudrais qu'elle API de Microsoft (W2K- XP) permet de faire défiler une image, et celle qui permet de synchroniser un process pendant le rafraîchissement de la carte écran?
J’ai un gros souci avec une application graphique.
Celle-ci affiche une image en écran, ligne par ligne, et l’image doit se déplacer d’une ligne vers le haut ou le bas pour donner un effet de déplacement.
J’ai créé une classe dans laquelle je crée une ligne bitmap dans un buffer (800/758) après avoir déplacé cellui-ci comme suit :
et pour afficher je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part memcpy (bBuffPic, (BYTE *)bBuffPic+m_iStride, m_iStride*(m_iSourceHeight-1));
Mais tout ceci prend encore trop de ressource system.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 void CToolsBmp::DrawImageBuffer(CDC* pDC, BYTE* bBuffSource, bool bFitToScale) { //Draw parent surface CDC memdcX; DWORD dwValue; HBITMAP hSource = CToolsBmp::CreateBitmap(); CBitmap cbmp; cbmp.Attach(hSource); memdcX.CreateCompatibleDC(pDC); dwValue = cbmp.SetBitmapBits(m_iStride*m_iTargetHeight,bBuffSource); memdcX.SelectObject(cbmp); if (bFitToScale) pDC->StretchBlt(0,0,m_iTargetWidth ,m_iTargetHeight,&memdcX,0,0,m_iSourceWidth,m_iSourceHeight,SRCCOPY ); else pDC->BitBlt(0,0,m_iSourceWidth,m_iTargetHeight ,&memdcX,0,0,SRCCOPY); }
Connaissez vous une API qui peux remplacer avantageusement ce processus ?
(Pour déplacer l’image déjà dessiné et synchroniser la mise à jour de l‘image avec la carte écran)
Je vous remercie de votre aide
Partager