• Martes 21 de Mayo de 2024, 15:50

Autor Tema:  Re: Bitmaps  (Leído 1423 veces)

nicokiki

  • Miembro MUY activo
  • ***
  • Mensajes: 298
    • Ver Perfil
Re: Bitmaps
« en: Sábado 25 de Octubre de 2003, 20:40 »
0
Hola a todos, estoy haciendo una aplicacion MFC basada en SDI.

Escribo esto en este evento:

void CBitmapView::OnLButtonDown(UINT nFlags, CPoint point)
{
   // TODO: Add your message handler code here and/or call default
   
   CPaintDC dc(this); // device context for painting
   
   bitmap.GetObject(sizeof(bm), &bm); //Calculate bitmap size
   
   CDC dcMem; //Create Memory DC
   dcMem.CreateCompatibleDC(&dc);
   CBitmap* pOldBitmap= dcMem.SelectObject(&bitmap); //Select bitmap
   dc.StretchBlt(point.x,point.y,50,50,&dcMem,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
   dcMem.SelectObject(pOldBitmap);
   Invalidate(FALSE);

   SelectObject( dcMem, pOldBitmap );
    DeleteDC( dcMem );


   CView::OnLButtonDown(nFlags, point);
}

Esto hace que cada vez que hago un click con le boton izquierdo, aparezca en pantalla, a partir de la posicion del mouse en pantalla, el cual lo levanto desde un archivo en el constructor de la clase CbitmapView.

El problema vien cuando, por ejemplo elijo cualquiera de las opciones de mi menu, por ejemplo: "Abrir Archivo". En ese momento, se borra todo lo que tenia en pantalla. Me doy cuenta que lo q hago es pegar bitmps en pantalla, pero es como que con otro evento se pierden.

Espero que alguien me hay entendido y me pueda responder

Salu2!!!!!!!!

navisoft

  • Miembro activo
  • **
  • Mensajes: 84
    • Ver Perfil
    • http://www.latindevelopers.com
Bitmaps
« Respuesta #1 en: Sábado 8 de Noviembre de 2003, 19:52 »
0
Bueno compañero....

Para conservar la imagen debes conservar la ultima posicion donde has efectuado el click y colocar un procedimiento parecido en el metodo OnPaint para que luego de hacer lo que sea puedas ver la imagen donde la dejaste.