SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: Genaro en Lunes 9 de Febrero de 2004, 12:43

Título: Ayuda Con Dcs
Publicado 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
Título: Re: Ayuda Con Dcs
Publicado por: nicokiki en Lunes 9 de Febrero de 2004, 15:06
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!!!!
Título: Re: Ayuda Con Dcs
Publicado por: nicokiki en Lunes 9 de Febrero de 2004, 19:42
Te sirvio????
Título: Re: Ayuda Con Dcs
Publicado por: Genaro en Martes 10 de Febrero de 2004, 09:50
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
Título: Re: Ayuda Con Dcs
Publicado por: nicokiki en Martes 10 de Febrero de 2004, 12:52
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!!!!!