[Résolu]scrolling vertical et horizontal
bonjour tout le monde j'ai un problème concernant l'affichage d'une image d'arrière plan
au fait le problème se pose sutout quand je redimensionne ma fenêtre et j'essaye de la parcourir avec les scrolls bars au fait quand je clique directement sur les scroll bar (que se soit vertical ou horizontal) j'arrive bien a capter la position du scroll mais quand j'essaye de cliquer sur les boutons de la fenêtre qui font bouger les scrolls bars j'ai toujours une position nulle du scroll qui est retourné je ne sais pas pourquoi
voila en gros ce que je fais :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
void MyFormView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
switch (nSBCode)
{
case SB_TOP:
sourcex = 0;
break;
case SB_BOTTOM:
sourcex = INT_MAX;
break;
case SB_THUMBTRACK:
sourcex= nPos;//la il entre lorsque je clique directement sur le scroll et
//ca marche j'obtient la bonne nPos
break;
case SB_LINEUP:
sourcex = nPos;//et la lorsque je clique sur le boutton au dessus du scroll
//et nPos est toujours 0?????
break;
case SB_LINEDOWN:
sourcex = nPos;//et la lorsque je clique sur le boutton au dessous du
//scroll et nPos est toujours 0????
break;
}
CFormView::OnHScroll(nSBCode, nPos, pScrollBar);
}
CFormView::OnHScroll(nSBCode, nPos, pScrollBar);
}
void MyFormView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
switch (nSBCode)
{
case SB_TOP:
sourcey = 0;
break;
case SB_BOTTOM:
sourcey = INT_MAX;
break;
case SB_THUMBTRACK:
sourcey = nPos;//la il entre lorsque je clique directement sur le scroll et
//ca marche j'obtient la bonne nPos
break;
case SB_LINEUP:
sourcey = nPos;//et la lorsque je clique sur le boutton au dessus du scroll
//et nPos est toujours 0?????
break;
case SB_LINEDOWN:
sourcey = nPos;//et la lorsque je clique sur le boutton au dessous du
//scroll et nPos est toujours 0????
break;
}
CFormView::OnHScroll(nSBCode, nPos, pScrollBar);
}
void MyFormView::OnPaint()
{
CPaintDC dc(this);
CRect rc;
GetClientRect (rc);
dc.BitBlt(rc.left,rc.top,rc.Width(),rc.Height(),&m_MemDC,sourcex,sourcey,SRCCOPY);//m_MemDC contient toute
//l'image a dessiner
} |
a quoi c'est dû ca je ne sais pas exactement comment windows gère ca surtout que je si quelqu'un a une idée ladessus je lui serai tres reconnaissanten'ai pas besoin de definir un control
merci d'avance