26
« en: Sábado 25 de Octubre de 2003, 20:40 »
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!!!!!!!!