CreateRectRgn, SelectObject y vuelta atrás
Publicado por victor (1 intervención) el 02/03/2009 19:44:49
hola a tod@s,
estoy haciendo una pintada en un formulario,
pinto una zona de un picturebox en mi formulario,
pero no quiero pintarlo todo, si no únicamente una zona cuadrada:
Dim lRegion as Long, lOldRegion as Long
lRegion = CreateRectRgn(0, 0, 450, 450)
lOldRegion = SelectObject(MesaFrm.hDC, lRegion)
BitBlt MesaFrm.hDC, 0, 0, 450, 450, FondoFrm.hDC, 0, 0, SRCCOPY
SelectObject MesaFrm.hDC, lOldRegion
DeleteObject lRegion
bien, con esto consigo mi propósito: sólo pintar una región de 450x450.
el caso es que con el segundo SelectObject, pretendo volver a dejar todo
como estaba... pero no es asÃ. todo se queda como si la región siguiera
activa, es decir, pinte lo que pinte, lo que se sale de esta región no se
ve en el formulario.
tengo que hacer otro tanto, esta vez de todo el formulario para volver a
la situación inicial...
lRegion = CreateRectRgn(0, 0, 800, 600)
lOldRegion = SelectObject(MesaFrm.hDC, lRegion)
SelectObject MesaFrm.hDC, lOldRegion
DeleteObject lRegion
alguna sugenrencia???
gracias anticipadas
estoy haciendo una pintada en un formulario,
pinto una zona de un picturebox en mi formulario,
pero no quiero pintarlo todo, si no únicamente una zona cuadrada:
Dim lRegion as Long, lOldRegion as Long
lRegion = CreateRectRgn(0, 0, 450, 450)
lOldRegion = SelectObject(MesaFrm.hDC, lRegion)
BitBlt MesaFrm.hDC, 0, 0, 450, 450, FondoFrm.hDC, 0, 0, SRCCOPY
SelectObject MesaFrm.hDC, lOldRegion
DeleteObject lRegion
bien, con esto consigo mi propósito: sólo pintar una región de 450x450.
el caso es que con el segundo SelectObject, pretendo volver a dejar todo
como estaba... pero no es asÃ. todo se queda como si la región siguiera
activa, es decir, pinte lo que pinte, lo que se sale de esta región no se
ve en el formulario.
tengo que hacer otro tanto, esta vez de todo el formulario para volver a
la situación inicial...
lRegion = CreateRectRgn(0, 0, 800, 600)
lOldRegion = SelectObject(MesaFrm.hDC, lRegion)
SelectObject MesaFrm.hDC, lOldRegion
DeleteObject lRegion
alguna sugenrencia???
gracias anticipadas
Valora esta pregunta


0