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
|
// On recupere un HDC pour dessiner
m_HDC = BeginPaint(hwnd, &m_PS);
// On definit une region de clipping
rc.top = 50;
rc.left = 50;
rc.bottom = 150;
rc.right = 150;
hrgn = CreateRectRgn(50,50,150,150);
SelectClipRgn(m_HDC, hrgn);
// A partir d'ici, on ne peut dessiner que entre (50,50) et (150,150)
FillRect(m_HDC,&rc,brushTest);
// On decale l'origine de 50-1000 = -950 px
SetViewportOrgEx(m_HDC,-950,-950,&originalOrigin);
// A partir d'ici, si on ecrit en (1000,1000) a l'ecran ca apparait en (50,50)
// On dessine un rectangle en (950,950)
rc.top = 950;
rc.left = 950;
rc.bottom = 1050;
rc.right = 1050;
FillRect(m_HDC,&rc,brushTest2);
// Le rectangle apparait clippé à l'ecran,
// entre (50,50) et (150,150)
// On annule le clipping
SelectClipRgn(m_HDC, NULL);
// On annule le decalage : on remet l'origine à (0,0)
SetViewportOrgEx(m_HDC,0,0,&originalOrigin);
// Finit de dessiner
EndPaint(hwnd, &m_PS); |
Partager