SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: Genaro en Lunes 9 de Febrero de 2004, 12:43
-
hola, empezando con visual c++ y un poco perdido, espero que podais echarme una mano.
Necesito crear un programa para abrir distintos BMPs y que se vayan dibujando en la pantalla.
Mi idea era crear un DC miembro de la clase View el que vamos seleccionando los bitmaps de esta manera:
sFilename = FileDlg.GetPathName()
HBITMAP m_hBmpNew;
m_hBmpNew = (HBITMAP) LoadImage(AfxGetInstanceHandle(), sFilename,
IMAGE_BITMAP, 0,
0, LR_LOADFROMFILE);
MiDCTemp.SelectObject(m_hBmpNew);
y luego en el evento OnDraw igualar este contexto de dispositivo al de la ventana cliente y dibujarlo con BitBlt, pero no se como hacerlo
¿alguien puede echarme una mano?
Gracias de antemano
-
Hola, te mando un ejemplo mio:
HBITMAP hbmp;
CBITMAP Bitmap;
hbmp = (HBITMAP)LoadImage(AfxGetInstanceHandle(),"c:\\CodoLeftUpBlanco.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
Bitmap.Attach(hbmp);
//Este CDC que viene es el encabezado del evento OnDraw()
CDC* pDC;
CDC memDC;
memDC.CreateCompatibleDC(pDC);
memDC.SelectObject(&Bitmap);
//pongo el bitmap en la posicion indicada por el atributo ptAt
//En este caso, podrias poner a ptAt donde vos quisieras
pDC->BitBlt(ptAt.x,ptAt.y,40,40,&memDC,0,0,SRCAND);
//Tambien existe StretchBlt() o algo asi era el nombre
SelectObject( memDC, Bitmap );
DeleteDC( memDC );
Creo q con eso deberia andar
Salu2!!!!
-
Te sirvio????
-
hola, gracias por contestar, pero no me funcionó :(
en cuanto llama a la funcion Attach el programa da error,
quiza deberia ir almacenando todos los bitmaps en una matriz y luego en el
OnDraw dibujarlos todos, no se
-
Ojo con el uso del Attach(), porque si a una misma variable de tipo CBITMAP le volves a hacer un Attach(), inevitablemente tirara un error en tiempo de ejecucion, por eso es que existe el Dettach() o algo asi, no me acuerdo el nombre exacto.
Salu2!!!!!