[C con Clase] Guardar como ; Guardar un bitmap

Juan Antonio Hernández Álvarez juanan_picones en hotmail.com
Lun Abr 6 23:53:44 CEST 2009


hola buenas

en mi aplicacion (tipo paint) cargo un bitmap desde archivo abrir y pinto encima de el o  directamente pinto en un bitmap compatible que creo para usar el doble buffer y pintar sobre el mismo  que parametros de la estructura OPENFILENAME
 debo rellenar para  guardar dicho bitmap

caso de que lo cargo desde archivo
                 hdc = GetDC(hwnd);
               //Cargamos el bitmap desde archivo abrir
               hbitmap = LoadImage((HINSTANCE)GetWindowLong(hwnd,    GWL_HINSTANCE),ofn.lpstrFile,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
               
               SelectObject(hdcmem,hbitmap);
               GetObject(hbitmap,sizeof(BITMAP),&bm);
               ancho = bm.bmWidth;
               alto = bm.bmHeight;

               MoveToEx(hdcmem,0,alto-1,NULL);
               LineTo(hdcmem,ancho, alto-1);
               MoveToEx(hdcmem,ancho-1,0,NULL);
               LineTo(hdcmem,ancho-1, alto);

               DeleteObject(hbitmap);
               ReleaseDC(hwnd,hdc);

o bien si lo creo yo(hoja en blanco)

               hdc = GetDC(hwnd);
              GetClientRect(hwnd, &rect);
              ancho = rect.right;
              alto = rect.bottom;
              hbitmap=CreateCompatibleBitmap(hdc, ancho, alto);
              SelectObject(hdcmem,hbitmap);
              FillRect(hdcmem, &rect, GetStockObject(WHITE_BRUSH));
              ReleaseDC(hwnd,hdc);

lo cargo y luego tengo funciones utilizando hdcmem [ hdcmem = CreateCompatibleDC(hdc); ] para pintar encima del bitmap
es decir brochas etc..

como haria para guardar  el bitmap en el ke estoy pintando, se invocar el cuadro de dialogo de guardar como pero lo que no se es como debo usar el bitmap o hcmem(hdc)( que uso para pintar para dibujar encima[lo voy modificando y pintando sobre el en WM_PAINT con  StretchBlt(hdc, 0, 0, rect.right, rect.bottom, hdcmem, 0, 0, ancho, alto, SRCCOPY); ] pasarlo a  la estructura OPENFILENAME y guardarlo como imagen(.bmp)

y ademas en caso de solo guardar que fucncion utilizariamo para guardar sin pasar por el cuadro de dialogo.


Un saludo y muchas gracias  me estais ayudando mucho
Juanan

_________________________________________________________________
Más rápido, sencillo y seguro. Descárgate ya el nuevo Internet Explorer 8 ¡Es gratis!
http://www.vivelive.com/ie8 
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20090406/45c420ea/attachment.html>


Más información sobre la lista de distribución Cconclase