C/Visual C - Device Context y Bitmaps

 
Vista:

Device Context y Bitmaps

Publicado por Kuriptonokos (6 intervenciones) el 29/05/2006 10:15:13
Buenas a todos
He hecho un programa cutrillo de dibujo, puedo dibujar a mano alzada y eso pero tengo un problema.
cada vez que minimizo o muevo otra ventana (o envia la señal WM_PAINT) se me borra todo lo de la pantalla.
Estoy intentando guardar la pantalla como bitmap, para luego poder volver a cargarlo, pero no se por que no me sale. Os pongo el codigo relacionado con esto. Si teneis otras sugerencias que no sea guardar todos los puntos en que dibujo :P, os escucho.

HDC hdcScreen = GetDC (hWnd);
HDC hdcCompatible = CreateCompatibleDC(hdcScreen);

//Tamaño de la pantalla
int iWidth = GetSystemMetrics (SM_CXSCREEN) / 10;
int iHeight = GetSystemMetrics (SM_CYSCREEN) / 10;

HBITMAP hbmScreen = CreateCompatibleBitmap(hdcScreen, iWidth, iHeight);

SelectObject(hdcCompatible, hbmScreen);

//Aqui teoricamente se copia el bitmap al HDC no????
BitBlt(hdcCompatible, 0,0, iWidth, iHeight, hdcScreen, 0,0, SRCCOPY)

//Liberamos memoria
DeleteObject(hbmScreen);
DeleteDC(hdcScreen);
DeleteDC(hdcCompatible);

(he hecho controles en los valores de retorno para saber si se crea y hace todo bien, y en principio si)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Sergio Castillo

RE:Device Context y Bitmaps

Publicado por Sergio Castillo (47 intervenciones) el 29/05/2006 17:39:12
Hola, mira el problema reside en que la hora de crear la ventana no se le dice a Windows que conserve lo que se dibuja en ella, hay un parametro que se pasa al style u otra propiedad de la clase que se crea de la ventana para esto, pero no lo tengo disponible aqui. Si quieres me escribes y te lo busco.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Device Context y Bitmaps

Publicado por Kuriptonokos (6 intervenciones) el 29/05/2006 17:43:12
mmmmm he estado mirando pero no he visto nada interesante, si tienes tiempo (y ganas :P) buscalo, me harias un favor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar