• Jueves 14 de Noviembre de 2024, 19:03

Autor Tema:  Ayuda Con Dcs  (Leído 1195 veces)

Genaro

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Ayuda Con Dcs
« en: Lunes 9 de Febrero de 2004, 12:43 »
0
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

nicokiki

  • Miembro MUY activo
  • ***
  • Mensajes: 298
    • Ver Perfil
Re: Ayuda Con Dcs
« Respuesta #1 en: Lunes 9 de Febrero de 2004, 15:06 »
0
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!!!!

nicokiki

  • Miembro MUY activo
  • ***
  • Mensajes: 298
    • Ver Perfil
Re: Ayuda Con Dcs
« Respuesta #2 en: Lunes 9 de Febrero de 2004, 19:42 »
0
Te sirvio????

Genaro

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Ayuda Con Dcs
« Respuesta #3 en: Martes 10 de Febrero de 2004, 09:50 »
0
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

nicokiki

  • Miembro MUY activo
  • ***
  • Mensajes: 298
    • Ver Perfil
Re: Ayuda Con Dcs
« Respuesta #4 en: Martes 10 de Febrero de 2004, 12:52 »
0
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!!!!!