Hola:
Necesito ayuda para cargar una imágen en un picturebox, a mi antojo,
quiero hacerlo con un switch (i) en el que si i=0, cargue una fotografía y si i=1; cargue otra.
utilizando Visual Studio 2010.
Gracias por adelantado...
Cita de: pikoc en 14 Julio 2015, 12:08 PM
Hola:
Necesito ayuda para cargar una imágen en un picturebox, a mi antojo,
quiero hacerlo con un switch (i) en el que si i=0, cargue una fotografía y si i=1; cargue otra.
utilizando Visual Studio 2010.
Gracias por adelantado...
¿Qué tipo de imagen (Bitmap, jpeg, etc)?
¿Cómo creas el picturebox?
¿Para qué tipo de tareas necesitas mostrar la imagen + el tipo (Por ejemplo, se debe mostrará de forma permanente, se cargará de forma dinamica, necesitará ser redibujada, etc ) ?
Hay varias maneras de cargar y mostrar una imagen.
A ver,
La imagen es un JPG.
El picturebox lo he creado en modo diseño.
y quiero que se cargue de forma dinámica.
No entiendo lo que quieres decir con tipo de tareas...
Y MUCHAS GRACIAS POR CONTESTAR! :)
Cita de: pikoc en 14 Julio 2015, 17:35 PM
A ver,
La imagen es un JPG.
El picturebox lo he creado en modo diseño.
y quiero que se cargue de forma dinámica.
No entiendo lo que quieres decir con tipo de tareas...
Y MUCHAS GRACIAS POR CONTESTAR! :)
Una manera facil usando COM: OleLoadPicturePath, uso CopyImage para crear una copia de la imagen en memoria asi que debe ser liberada con DeleteObject a menos que quieras escribir directamente al objeto con Bitblt.
#include <OleCtl.h>
CoInitialize(0);
HRESULT hResult;
IPicture* Img;
SHORT ImgType;
hResult = OleLoadPicturePath(
L"RUTA_DE_LA_IMAGEN",
NULL, 0, 0,
&IID_IPicture,
&Img
);
if (hResult == S_OK)
{
OLE_HANDLE OleImgHandle;
hResult = Img->lpVtbl->get_Handle(Img, &OleImgHandle);
if (hResult == S_OK)
{
HBITMAP hPicRet = (HBITMAP)CopyImage(
(HANDLE)OleImgHandle, IMAGE_BITMAP, 0, 0, LR_COPYRETURNORG);
if (hPicRet)
{
SendDlgItemMessage(
hwndDlg, // HWND de la ventana padre del control
IDC_PB1, // Identificador del control
STM_SETIMAGE,
IMAGE_BITMAP,
(LPARAM)hPicRet);
}
}
Img->lpVtbl->Release(Img);
}