elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Ayuda] Cargar BMP en C++ [Windows]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Ayuda] Cargar BMP en C++ [Windows]  (Leído 3,900 veces)
cin.get();

Desconectado Desconectado

Mensajes: 33



Ver Perfil WWW
[Ayuda] Cargar BMP en C++ [Windows]
« en: 30 Enero 2014, 17:06 pm »

Hola amigos, espero y me puedan ayudar.

Estoy buscando alguna función de la librería "windows.h" que me ayude a cargar bitmaps en una ventana he leído un poco y he encontrado algo sobre una función llamada LoadImage() la he usado pero sólo me deja cargar una imagen y ni si quiera la he logrado imprimir en la posición que yo quiera.

Es decir quiero crear algo como esto:

Código
  1. void ImagenCarga(char* nombre, int x, int y)

Tengo entendido que con HWND se declara la ventana y con HBITMAP el interior de la ventana en el que se puede dibujar. Encontré esto por internet:

Código
  1. hBitmap = (HBITMAP)LoadImage(NULL,"imagen.bmp", IMAGE_BITMAP,0,0, LR_LOADFROMFILE);

Pero como digo, quisiera poder cargar tantos bmps como quiera y en la posición que yo desee.

Disculpen si me enredé un poco pero espero y me puedan ayudar. más que nada la quiero para desarrollar pequeños videojuegos. Saludos y gracias


En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: [Ayuda] Cargar BMP en C++ [Windows]
« Respuesta #1 en: 30 Enero 2014, 18:13 pm »

Para hacer videojuegos, deja Windows API y mirate SFML/Allegro. Son librerías especializadas en multimedia.


En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: [Ayuda] Cargar BMP en C++ [Windows]
« Respuesta #2 en: 30 Enero 2014, 18:36 pm »

Hola amigos, espero y me puedan ayudar.

Estoy buscando alguna función de la librería "windows.h" que me ayude a cargar bitmaps en una ventana he leído un poco y he encontrado algo sobre una función llamada LoadImage() la he usado pero sólo me deja cargar una imagen y ni si quiera la he logrado imprimir en la posición que yo quiera.

Es decir quiero crear algo como esto:

Código
  1. void ImagenCarga(char* nombre, int x, int y)

Tengo entendido que con HWND se declara la ventana y con HBITMAP el interior de la ventana en el que se puede dibujar


El proceso es este:

hBitMap = LoadBitmap(hInst, MAKEINTRESOURCE(ID));

hDC = BeginPaint(hWnd, &lpPaintInfo)/GetDC(hWnd);
hMemDC = CreateCompatibleDC(hDC);
hOldDCObj = SelectObject(hMemDC, hBitMap);
BitBlt(hDC, x, x, x, x, hMemDC, 0, 0, SRCCOPY);
SelectObject(hMemDC, hOldDCObj);
DeleteDC(hMemDC);
EndPaint(hWnd, &lpPaintInfo);

DeleteObject(hBitMap);

Puesto que no sé desde donde estas dibujando los bitmap puede ser BeginPaint o GetDC pero más recomendable es BeginPaint en WM_PAINT
eso por si se requiere que se redibuje.

En línea

cin.get();

Desconectado Desconectado

Mensajes: 33



Ver Perfil WWW
Re: [Ayuda] Cargar BMP en C++ [Windows]
« Respuesta #3 en: 30 Enero 2014, 22:01 pm »

Para hacer videojuegos, deja Windows API y mirate SFML/Allegro. Son librerías especializadas en multimedia.
Sii lo sé, he probado sdl, allegro y muchas pero para ser sincero lo único que ocupo es cargar imágenes lo de más lo hago yo, no me gusta usar funciones creadas por otros aunque esto sea reinventar la rueda :P
En línea

cin.get();

Desconectado Desconectado

Mensajes: 33



Ver Perfil WWW
Re: [Ayuda] Cargar BMP en C++ [Windows]
« Respuesta #4 en: 30 Enero 2014, 22:02 pm »



El proceso es este:

hBitMap = LoadBitmap(hInst, MAKEINTRESOURCE(ID));

hDC = BeginPaint(hWnd, &lpPaintInfo)/GetDC(hWnd);
hMemDC = CreateCompatibleDC(hDC);
hOldDCObj = SelectObject(hMemDC, hBitMap);
BitBlt(hDC, x, x, x, x, hMemDC, 0, 0, SRCCOPY);
SelectObject(hMemDC, hOldDCObj);
DeleteDC(hMemDC);
EndPaint(hWnd, &lpPaintInfo);

DeleteObject(hBitMap);

Puesto que no sé desde donde estas dibujando los bitmap puede ser BeginPaint o GetDC pero más recomendable es BeginPaint en WM_PAINT
eso por si se requiere que se redibuje.



Muchas gracias por tu respuesta, exactamente que es lo que hace cada parte :P
En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: [Ayuda] Cargar BMP en C++ [Windows]
« Respuesta #5 en: 31 Enero 2014, 05:20 am »

Muchas gracias por tu respuesta, exactamente que es lo que hace cada parte :P
Detalles en la MSDN. Además si estas haciendo eso desde WM_PAINT usar BeginPaint y puedes cargar el bitmap en el inicio del programa así evitas cargarla y descargarla cada vez que una ventana oculta tu bitmap.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ayuda][C++] Cargar BMP en Windows
Windows
cin.get(); 0 1,757 Último mensaje 30 Enero 2014, 17:07 pm
por cin.get();
Ayuda cargar evento al cargar tabPageX
Programación Visual Basic
Kaxperday 3 2,614 Último mensaje 19 Noviembre 2014, 23:09 pm
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines